home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / tools / dfue / cat_utis / io_conv / io_conv.doc (.txt) < prev    next >
LaTeX Document  |  1995-11-25  |  122KB  |  3,498 lines

  1. @subject  "Dokumentation/Utilities"
  2. @database "IO-Converter Anleitung"
  3. @author   "Markus Kohm"
  4. @$VER: io_conv.hyp 2.40
  5.  (04/09/95)
  6. #%format latex
  7. #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  8. #% IO-Converter-Anleitung
  9. #% Copyright (c) Markus Kohm, 1995
  10. #%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  11. #\documentclass[DIV12,10pt,twoside]{scrreprt}
  12. #\usepackage{german}
  13. #\usepackage[T1]{fontenc}
  14. #\title{IO-Converter 2.40$\beta$}
  15. #\author{Markus Kohm}
  16. #\date{4. September 1995}
  17. #\pagestyle{headings}
  18. #\newcommand*{\cmd}[1]{\texttt{\symbol{92}#1}}
  19. #\setcounter{tocdepth}{5}
  20. #\setcounter{secnumdepth}{3}
  21. #\begin{document}
  22. #\maketitle
  23. #\tableofcontents
  24. 1 Allgemeines
  25. ? Allgemeines
  26.  Hier folgen die 
  27. blichen Anmerkungen, wobei ich darum bitte, da
  28.  diese
  29.  `komplett` und `gr
  30. ndlich` durchgelesen werden (insbesondere das Kapitel
  31.  "Rechtliches")!
  32. 2 Vorwort
  33. ? Vorwort
  34.  Vor einiger Zeit h
  35. uften sich in der MAUS-Gruppe "MT.CAT" die Fragen, ob
  36.  man mit CAT nicht individuell f
  37. r einzelne Empf
  38. nger oder Gruppen eine
  39.  Umlautwandlung aktivieren k
  40. nnte. Die Gr
  41. nde f
  42. r diese W
  43. nsche waren
  44.  vielf
  45. ltig, dennoch konnte sich Dirk Steins, der Autor von CAT, nicht
  46.  dazu entschlie
  47. en, soetwas zu implementieren.
  48.  Aus diesem Grund habe ich irgendwann angefangen, einen solchen
  49.  selektiven Umlautwandler als CAT-I/O-Filter zu schreiben. Als ich schon
  50.  bei der Arbeit war, kamen rasch weitere Probleme und W
  51. nsche hinzu. So
  52.  stellte ich bei einer fr
  53. heren CAT-Version fest, da
  54.  bei sehr langen
  55.  Mails pl
  56. tzlich Null-Bytes in den Texten erschienen. Also baute ich
  57.  einen Filter f
  58. r Control-Zeichen ein. Unter gewissen Umst
  59. nden wurden
  60.  von anderen Filtern Tabulatorzeichen in Infiles geschrieben, mit denen
  61.  die Maus nichts anfangen kann. Also baute ich eine Wandlung f
  62.  Tabulatoren ein.
  63.  Da CAT auch den Zeilenumbruch nicht selektiv verwalten und einmal
  64.  eingef
  65. gte Mails nicht neu umbrechen kann, gab es z.B. mit PGP-Mails
  66.  teilweise Probleme beim Zeilenumbruch. Also baute ich einen
  67.  Zeilenumbruch ein.
  68.  Irgendwann reichte der einfache Stringfilter in der Einser-Version von
  69.  IO-Converter nicht mehr aus. Au
  70. erdem gab es von Anfang an Probleme mit
  71.  dem Pattern-Match-Algorithmus von IO-Converter. Also setzte ich mich
  72.  wieder an meinen Rechner und begann eine v
  73. llig neue Version. Diese
  74.  arbeitet nun mit regul
  75. ren Ausdr
  76. cken. Diese Version ist u.a. aus diesem
  77.  Grund aber auch wegen diverser Vereinfachungen und Erweiterungen nicht
  78.  mehr zur Einser-Version kompatibel.
  79. 2 Rechtliches
  80. ? Rechtliches
  81.  Alle Teile dieses Pakets d
  82. rfen frei, aber nur frei weitergegeben und
  83.  vertrieben werden. Frei bedeutet dabei, da
  84.  dem Weitergebenden bzw.
  85.  Vertreiber aus der Weitergabe bzw. dem Vertrieb kein Gewinn entstehen
  86.  darf.
  87.  Der Upload in Mailboxen, ftp-Server und 
  88. hnliche Medien ist gestattet,
  89.  wenn der Download aus diesen Boxen, Servern oder sonstigen Medien
  90.  kostenlos m
  91. glich und erlaubt ist.
  92.  Das Paket darf nur vollst
  93. ndig, also mit allen zugeh
  94. rigen Teilen, und
  95.  unver
  96. ndert weitergegeben bzw. vertrieben werden. Der Autor beh
  97. lt sich
  98. r jeden Vertriebsweg ein Vetorecht vor. Macht der Autor von diesem
  99.  Vetorecht Gebrauch, so ist der weitere Vertrieb auf dem entsprechenden
  100.  Wege untersagt und einzustellen. Dies gilt auch f
  101. r Weitergabe auf
  102.  nichtkommerziellen Wegen, soweit nicht gesonderte Regelungen `schriftlich`
  103.  vereinbart wurden.
  104.  Der Autor lehnt jegliche Gew
  105. hrleistung und Haftung im Rahmen der
  106.  gesetzlichen M
  107. glichkeiten ab. Die Verwendung aller Teile des Pakets
  108.  erfolgt auf eigene Gefahr des Anwenders. Zwar habe ich mich bem
  109.  Programme und Anleitung m
  110. glichst fehlerfrei zu bekommen, jedoch ist
  111.  absolute Korrektheit bei der Komplexit
  112. t des Programms und der Anleitung
  113.  nahezu unm
  114. glich. Fehlfunktionen, insbesondere aber nicht ausschlie
  115.  zusammen mit Fehlbedienung, sind m
  116. glich.
  117. 2 Autor, Ansporn, Fehler
  118. ? Autor
  119. ? Ansporn
  120.  Sollte jemand Fehler in diesem Paket finden (siehe die Hinweise zum
  121.  Outputlevel), so ist er ausdr
  122. cklich aufgefordert, mir diese zu melden.
  123.  Erreichbar bin ich per
  124. #\begin{labeling}{\textbf{MausNet:}}
  125. #\item[MausNet:] Markus Kohm @ KA2
  126. #\item[Post:]    \begin{flushleft}
  127. #                Markus Kohm\\
  128. #                Augartenstra"se 29\\
  129. #                76137 Karlsruhe
  130. #\end{flushleft}\end{labeling}
  131.     MausNet: Markus Kohm @@ KA2
  132.     Post:    Markus Kohm
  133.              Augartenstra
  134.              76137 Karlsruhe
  135.  Bei W
  136. nschen und Vorschl
  137. gen kann man sich ebenfalls an mich wenden.
  138.  Ich kann aber nicht versprechen, da
  139.  diese auch umgesetzt werden.
  140.  Da das gesamte Paket in meiner knappen Freizeit entsteht, hat vielleicht
  141.  jemand den Wunsch, mir mit einer kleinen Spende die Weiterentwicklung
  142.  schmackhaft zu machen oder einfach nur zu danken:
  143. #\begin{quote}\begin{flushleft}
  144. #             Markus Kohm\\
  145. #             Konto: 995\,894\\
  146. #             Sparda Bank Karlsruhe: 660\,905\,00
  147. #\end{flushleft}\end{quote}
  148.              Markus Kohm
  149.              Konto: 995 894
  150.              Sparda Bank Karlsruhe: 660 905 00
  151.  Jedenfalls w
  152. nsche ich erfolgreiches Schaffen!
  153. 2 Danksagung
  154. ? Danksagung
  155.  Ich danke Andreas Schrell und Richard Kampmann f
  156. r ihre Unterst
  157. tzung,
  158.  Anregung und ausf
  159. hrliche Kritik, bei Richard au
  160. erdem f
  161. r seine
  162. erordentliche Geduld.
  163. 1 Der IO-Converter
  164. ? Der IO-Converter
  165.  Der IO-Converter ist als I/O-Filter f
  166. r CAT entstanden. Da der
  167.  IO-Converter In- und Outfiles bearbeitet, kann er aber zumindest
  168.  theoretisch auch mit anderen MausTausch-Programmen verwendet werden.
  169.  Die Installation des IO-Converters f
  170. r CAT ist in einem der
  171.  nachfolgenden Kapitel beschrieben. F
  172. r die Automatisierung mit anderen
  173.  MausTausch-Programmen kann z.B. das Programm CATAUSCH verwendet werden.
  174. 2 Die Funktion
  175. ? Die Funktion
  176.  Der IO-Converter wird normalerweise als I/O-Filter f
  177. r CAT installiert.
  178.  Alternativ kann er aber auch in einem Tausch-Script eingesetzt werden.
  179.  IO-Converter wirkt direkt auf das In- bzw. das Outfile. IO-Converter ist
  180.  in der Lage, Zeichen und Strings innerhalb von In- bzw. Outfile-Bl
  181.  zu ersetzen. In welchen Bl
  182. cken was ersetzt wird, kann spezifisch
  183.  definiert werden. Hierzu dient eine Filterdatei. Der Aufbau dieser Datei
  184.  ist dem Kapitel Filterdatei zu entnehmen.
  185.  IO-Converter kann z.B. dazu verwendet werden, den Zeichensatz insgesamt
  186.  zu konvertieren. N
  187. tzlich kann dies z.B. sein, wenn man mit mehreren
  188.  unterschiedlichen Rechnern an einer Maus oder Quark arbeitet und immer
  189.  die richtigen Umlaute haben will. Man stellt dann die Umlaute ein, die
  190.  man online verwendet und l
  191. t die Umlaute im In- und Outfile f
  192. r den
  193.  Mail-Rechner konvertieren.
  194.  IO-Converter kann auch dazu verwendet werden, verschiedene Signaturen,
  195.  Begr
  196. ungen oder Footer auszuw
  197. hlen und anzuh
  198. ngen sowie den
  199.  Zeilenumbruch zu 
  200. bernehmen, wobei er im Gegensatz zum Umbruch in der
  201.  Maus auch Quotes ber
  202. cksichtigen kann.
  203.  Alle Funktionen des IO-Converters k
  204. nnen abh
  205. ngig vom Empf
  206. nger bzw. der
  207.  Gruppe oder auch dem Mailtextes konfiguriert werden.
  208.  Siehe dazu die Beispielfilterdatei "infile.cnf" und die
  209.  Beispielnicknamedatei "nickname.nik".
  210. 2 Aufruf
  211. ? Aufruf
  212.  IO-Converter versteht verschiedene optionale Parameter und erwartet als
  213.  weiteren Parameter den Namen der zu konvertierenden Datei:
  214.    io_conv.ttp [-T] [-f @{I}Filterdatei@{i}] [-O @{I}Outputlevel@{i}]
  215.                [-n @{I}Nicknamedatei@{i}] @{I}Datei@{i} [[1|2]>[>]@{I}Ausgabedatei@{i}]
  216. #\begin{labeling}{\texttt{io\_conv.ttp}}
  217. #\item[\texttt{io\_conv.ttp}] \texttt{[-T]} \texttt{[-f \emph{Filterdatei}]}
  218. #                             \texttt{[-O \emph{Outputlevel}]}
  219. #                             \texttt{[-n \emph{Nicknamedatei}]}\hfill\\
  220. #                                     \emph{Datei}
  221. #                             \texttt{[[1|2]>[>]\emph{Ausgabedatei}]}
  222. #\end{labeling}
  223.  Die Reihenfolge der Parameter ist beliebig. Die Bedeutung im einzelnen:
  224.  Normalerweise verwendet IO-Converter als Filterdatei die Datei
  225.  "io_conv.cnf" im aktuellen Verzeichnis. Mit dem Parameter -f `Filterdatei`
  226.  kann eine andere Filterdatei angegeben werden. Damit ist es z.B. m
  227. glich
  228. r In- und Outfile unterschiedliche Filterdateien zu verwenden.
  229.  Mit dem Parameter -n `Nicknamedatei` kann die Datei zur Konfiguration
  230.  der Nicknames (Spitznamen) definiert werden. Fehlt dieser Parameter, so
  231.  wird daf
  232. r "nickname.nik" angenommen.
  233.  Der `Outputlevel` gibt an, welche Ausgaben get
  234. tigt werden sollen und
  235.  welche unterdr
  236. ckt werden.
  237.  Wohin die Ausgabe get
  238. tigt wird, kann 
  239. ber den letzten Parameter
  240.  festgelegt werden. Mit einer zus
  241. tzlichen 1 vor dem ersten Gr
  242. erzeichen
  243.  wird nur die Standardausgabe umgelenkt. Mit einer zus
  244. tzlichen 2 vor dem
  245.  ersten Gr
  246. erzeichen wird stattdessen nur die Fehlerausgabe umgelenkt.
  247.  Ist keine genauere Angabe vorhanden, so werden sowohl Standardausgabe
  248.  als auch Fehlerausgabe umgelenkt. Werden zwei aufeinanderfolgende
  249. erzeichen verwendet, so wird an die angegebene `Ausgabedatei`
  250.  angeh
  251. ngt, sonst wird sie 
  252. berschrieben.
  253.  Der Parameter `-T` stellt einen Sonderfall dar. Wenn er angegeben ist,
  254.  werden lediglich die Parameter 
  255. berpr
  256. ft, Filterdatei und Nicknamedatei
  257.  geladen und interpretiert und angegeben, welche Datei gefiltert w
  258.  Die Filterung selbst findet nicht statt. Bei Verwendung des Parameters
  259.  ist au
  260. erdem keine Ausgabeumlenkung m
  261. glich. Fehler f
  262. hren im Testmodus
  263.  nicht zu einem Abbruch. Parameter, die vor `-T` stehen, werden jedoch
  264.  nicht im Testmodus 
  265. berpr
  266. ft und k
  267. nnen somit auch zu einem Abbruch
  268. hren.
  269.  Dadurch da
  270.  IO-Converter selbst die Ausgabeumlenkung vornehmen kann,
  271.  kann die Ausgabe auch bei einem Aufruf aus CAT umgelenkt werden. Damit
  272.  wurde die bisher verwendete LOG-Datei 
  273. berfl
  274. ssig.
  275. 3 Der Outputlevel
  276. ? Outputlevel
  277.  Mit der Parameteroption "-O `Outputlevel`" (es handelt sich hier um den
  278. buchstaben "O") k
  279. nnen verschiedene Ausgaben von IO-Converter ein-
  280.  und ausgeschaltet werden. Beim `Outputlevel` handelt es sich um einen
  281.  Zahlenwert, wobei jedem Bit eine oder mehrere Ausgaben zugeordnet sind:
  282. @#|l|p{.8\textwidth}|
  283. #\hline
  284. #Bit   & Bedeutung\\\hline
  285. #0     & unspezifiziert\\
  286. #1     & Warnung bei automatischen Anreden ohne erkennbare Namen\\
  287. #2     & Warnung bei 
  288. berschreiten der maximalen Mail-L"ange von
  289. #        16000 Byte\\
  290. #3     & Warnung bei offensichtlich fehlerhafter Filterung\\
  291. #4--14 & unspezifiziert\\
  292. #15    & Debuginformationen\\\hline
  293.     Bit  | Bedeutung
  294.    ------|---------------------------------------------------------
  295.        0 | unspezifiziert.
  296.        1 | Warnung bei automatischen Anreden ohne erkennbare Namen
  297.        2 | Warnung bei 
  298. berschreiten der maximalen Mail-L
  299. nge von
  300.          | 16000 Byte
  301.        3 | Warnung bei offensichtlich fehlerhafter Filterung
  302.     4-14 | unspezifiziert
  303.       15 | Debuginformationen
  304.  Eine besondere Bedeutung kommt dem Wert Null zu, bei dem alle Ausgaben
  305.  unterdr
  306. ckt werden. Bei allen anderen Werten (auch wenn nur mindestens
  307.  ein unspezifiziertes Bit gesetzt ist) erfolgt zumindest ein Hinweis auf
  308.  Fehler (in Form einer Fehlernummer), die zu einem Abbruch f
  309. hren. Der
  310.  Wert kann dezimal oder hexadezimal mit vorangestelltem "0x" 
  311. bergeben
  312.  werden.
  313.  Die Warnung bei offensichtlich fehlerhafter Filterung wird derzeit
  314.  ausgegeben, wenn ein Filter das Zeilenende vor einem zu sch
  315. tzenden
  316.  Block oder am Ende einer Mail l
  317. scht. Auch ohne Warnung wird in diesem
  318.  Fall wieder ein Zeilenende eingef
  319. @autorefoff
  320.  Beispiele:
  321. @autorefon
  322.              io_conv.ttp -O 0
  323.  schaltet alle Ausgaben aus.
  324.              io_conv.ttp -O 0x7FFF
  325.  schaltet alle Ausgaben bis auf Debug-Informationen an.
  326.              io_conv.ttp -O 1
  327.  schaltet nur die Meldung fataler Fehler ein.
  328.              io_conv.ttp -O 0xFFFF
  329.  schaltet alle Meldungen inclusive Debug-Meldungen ein.
  330.  Sollten Fehler bei der Filterung auftreten, so empfehle ich folgendes
  331.  Vorgehen:
  332. chst schaltet man alle Meldungen inclusive Debug-Meldungen ein.
  333.  Damit kann man dann feststellen, bei welcher MsgID der Fehler auftritt.
  334.  Nun versucht man, einen m
  335. glichst kleinen Ausschnitt im In- bzw. Outfile
  336.  zu finden, mit dem der Fehler noch auftritt.
  337.  Nun versucht man weiter, die Filterdatei soweit zu verkleinern, da
  338.  Fehler gerade noch auftritt. Ebenso geht man mit der Nicknamedatei vor.
  339.  Sollte man nun zu dem Schlu
  340.  kommen, da
  341.  die Ursache nicht in einer der
  342.  Konfigurationsdateien, sondern bei IO-Converter zu suchen ist, so kann
  343.  man mir die minimierten Dateien und die IO-Converter-Ausgabe zusenden
  344.  (per Mail, in meinen PPT in KA oder per gelber Post). Dabei auf keinen
  345.  Fall vergessen, die verwendete Version von IO-Converter mit anzugeben!
  346. 4 Fehlerausgabe und R
  347. ckgabecode
  348. ? Fehlernummern und R
  349. ckgabecode
  350. ? Fehlernummern
  351. ckgabecode
  352.  Derzeit gibt IO-Converter im Falle eines fatalen Fehlers (das sind
  353.  Fehler, die zu einem Abbruch f
  354. hren) in der Regel nur eine Fehlernummer
  355.  und u.U. einen Verursacher aus. Der urspr
  356. ngliche Grund daf
  357. r war, da
  358.  IO-Converter so nicht durch die ganzen Fehlermeldungen aufgebl
  359. ht wird.
  360.  Vermutlich wird sich das in einer zuk
  361. nftigen Version aber wieder
  362. ndern. Die entsprechenden Nummern werden au
  363. erdem im Fehlerfall von
  364.  IO-Converter an das aufrufende Programm zur
  365. ckgegeben.
  366. @#|r|p{.8\textwidth}|
  367. #\hline
  368. #   Code & Fehlerursache \emph{Parameter"ubergabe}\\
  369. #\hline
  370. #     1  & Standardausgabeumleitung nicht m"oglich\\
  371. #     2  & Fehlerausgabeumleitung nicht m"oglich\\
  372. #     3  & Bearbeitungsdatei doppelt angegeben\\
  373. #     4  & Keine Bearbeitungsdatei angegeben\\
  374. #     5  & unbekannter Parameter\\
  375. #     6  & Parameter \texttt{-f} erwartet weiteren Parameter\\
  376. #     7  & Parameter \texttt{-n} erwartet weiteren Parameter\\
  377. #        &\\
  378. #     9  & Nicht genug Speicher f"ur diverse Puffer\\
  379. #\hline
  380. @#|r|p{.8\textwidth}|
  381. #\hline
  382. #   Code & Fehlerursache \emph{Filterdatei lesen}\\
  383. #\hline
  384. #    10  & Dateifehler ("offnen)\\
  385. #    11  & Dateifehler (lesen)\\
  386. #    12  & unbekannter Filtertyp\\
  387. #\hline
  388. @#|r|p{.8\textwidth}|
  389. #\hline
  390. #   Code & Fehlerursache \emph{Neuer Filter}\\
  391. #\hline
  392. #    20  & Speicher"uberlauf\\
  393. #    21  & Dateifehler\\
  394. #    22  & Zeilenpuffer"uberlauf\\
  395. #    23  & Fehler in regul"arem Ausdruck\\
  396. #\hline
  397. @#|r|p{.8\textwidth}|
  398. #\hline
  399. #   Code & Fehlerursache \emph{Stringfilter alter Bauart} ("`\texttt{:}"')\\
  400. #\hline
  401. #    30  & Welcher Filter\\
  402. #    31  & Speicherplatz\\
  403. #    32  & Dateifehler\\
  404. #    33  & Zeilen"uberlauf\\
  405. #    34  & "`\texttt{=}"' fehlt\\
  406. #\hline
  407. @#|r|p{.8\textwidth}|
  408. #\hline
  409. #   Code & Fehlerursache \emph{Zeichenfilter} ("`\texttt{>}"')\\
  410. #\hline
  411. #    40  & Welcher Filter\\
  412. #    41  & Speicherplatz\\
  413. #    42  & Dateifehler\\
  414. #    43  & Zeilen"uberlauf\\
  415. #    44  & Speicherplatz\\
  416. #    45  & "`\texttt{<}"' fehlt\\
  417. #    46  & Dateifehler\\
  418. #    47  & Zeilen"uberlauf\\
  419. #\hline
  420. @#|r|p{.8\textwidth}|
  421. #\hline
  422. #   Code & Fehlerursache \emph{Filteraktivierung} ("`\texttt{!}"')\\
  423. #\hline
  424. #    50  & Welcher Filter\\
  425. #    51  & Schachtelungstiefe\\
  426. #    52  & Speicherplatz\\
  427. #    53  & Dateifehler\\
  428. #    54  & Zeilen"uberlauf\\
  429. #    55  & Filter nicht gefunden\\
  430. #\hline
  431. @#|r|p{.8\textwidth}|
  432. #\hline
  433. #   Code & Fehlerursache \emph{Stringfilter neue Bauart} ("`\texttt{\dq}"')\\
  434. #\hline
  435. #    60  & Welcher Filter\\
  436. #    61  & Speicherplatz\\
  437. #    62  & 1. End-"`\texttt{\dq}"' fehlt oder Zeilen"uberlauf\\
  438. #    63  & 2. Anfangs-"`\texttt{\dq}"' fehlt\\
  439. #    64  & 2. End-"`\texttt{\dq}"' fehlt oder Zeilen"uberlauf\\
  440. #    65  & Zeilenende fehlt\\
  441. #\hline
  442. @#|r|p{.8\textwidth}|
  443. #\hline
  444. #   Code & Fehlerursache \emph{Filteroptionen} ("`\texttt{-}"')\\
  445. #\hline
  446. #    80  & Welcher Filter\\
  447. #    81  & Speicherplatz\\
  448. #    82  & Dateifehler\\
  449. #    83  & unbekannte Option\\
  450. #    84  & unzul"assiger Wert\\
  451. #\hline
  452. @#|r|p{.8\textwidth}|
  453. #\hline
  454. #   Code & Fehlerursache \emph{Datei bearbeiten}\\
  455. #\hline
  456. #   100  & Umbenennung von \emph{datei}\texttt{.}\emph{extend} in
  457. #          \emph{datei}\texttt{.\$\$\$}\\
  458. #   101  & Dateifehler ("offnen)\\
  459. #   102  & Dateifehler (lesen)\\
  460. #        &\\
  461. #   110  & aus Syntaxgr"unden weder Infile noch Outfile\\
  462. #   111  & Zeilenpuffer"uberlauf\\
  463. #   112  & Zwei "`\texttt{V}"'-Zeilen (Von User),
  464. #          "`\texttt{A}"'-Zeilen (An User),
  465. #          "`\texttt{G}"'-Zeilen (Gruppe)\\
  466. #   113  & ID, Username, Gruppenname, Textzeile zu lang\\
  467. #   114  & Auf eine Textzeile folgt kein neuer Block\\
  468. #        &\\
  469. #   120  & Fehler beim Zuladen einer Datei\\
  470. #        &\\
  471. #   150  & Textzeile wird durch Konvertierung zu lang\\
  472. #        &\\
  473. #   201  & Dateifehler (erzeugen)\\
  474. #   250  & Dateifehler (schreiben)\\
  475. #   299  & Dateifehler (schreiben beim Schlie"sen)\\
  476. #\hline
  477.     Code | Fehlerursache
  478.    ------|-------------------------------------------------------
  479.          | Parameter
  480. bergabe:
  481.       1  | Standardausgabeumleitung nicht m
  482. glich
  483.       2  | Fehlerausgabeumleitung nicht m
  484. glich
  485.       3  | Bearbeitungsdatei doppelt angegeben
  486.       4  | Keine Bearbeitungsdatei angegeben
  487.       5  | unbekannter Parameter
  488.       6  | Parameter -f erwartet weiteren Parameter
  489.       7  | Parameter -n erwartet weiteren Parameter
  490.          |
  491.       9  | Nicht genug Speicher f
  492. r diverse Puffer
  493.    ------|-------------------------------------------------------
  494.          | Filterdatei lesen:
  495.      10  | Dateifehler (
  496. ffnen)
  497.      11  | Dateifehler (lesen)
  498.      12  | unbekannter Filtertyp
  499.    ------|-------------------------------------------------------
  500.          | Neuer Filter:
  501.      20  | Speicher
  502. berlauf
  503.      21  | Dateifehler
  504.      22  | Zeilenpuffer
  505. berlauf
  506.      23  | Fehler in regul
  507. rem Ausdruck
  508.    ------|-------------------------------------------------------
  509.          | Stringfilter alter Bauart: (":")
  510.      30  | Welcher Filter
  511.      31  | Speicherplatz
  512.      32  | Dateifehler
  513.      33  | Zeilen
  514. berlauf
  515.      34  | "=" fehlt
  516.    ------|-------------------------------------------------------
  517.          | Zeichenfilter: (">")
  518.      40  | Welcher Filter
  519.      41  | Speicherplatz
  520.      42  | Dateifehler
  521.      43  | Zeilen
  522. berlauf
  523.      44  | Speicherplatz
  524.      45  | "<" fehlt
  525.      46  | Dateifehler
  526.      47  | Zeilen
  527. berlauf
  528.    ------|-------------------------------------------------------
  529.          | Filteraktivierung: ("!")
  530.      50  | Welcher Filter
  531.      51  | Schachtelungstiefe
  532.      52  | Speicherplatz
  533.      53  | Dateifehler
  534.      54  | Zeilen
  535. berlauf
  536.      55  | Filter nicht gefunden
  537.    ------|-------------------------------------------------------
  538.          | Stringfilter neue Bauart: ('"')
  539.      60  | Welcher Filter
  540.      61  | Speicherplatz
  541.      62  | 1. End-'"' fehlt oder Zeilen
  542. berlauf
  543.      63  | 2. Anfangs-" fehlt
  544.      64  | 2. End-'"' fehlt oder Zeilen
  545. berlauf
  546.      65  | Zeilenende fehlt
  547.    ------|-------------------------------------------------------
  548.          | Filteroptionen: ("-")
  549.      80  | Welcher Filter
  550.      81  | Speicherplatz
  551.      82  | Dateifehler
  552.      83  | unbekannte Option
  553.      84  | unzul
  554. ssiger Wert
  555.    ------|-------------------------------------------------------
  556.          | Datei bearbeiten:
  557.     100  | Umbenennung von <datei>.<extend> in <datei>.$$$
  558.          | fehlgeschlagen
  559.     101  | Dateifehler (
  560. ffnen)
  561.     102  | Dateifehler (lesen)
  562.          |
  563.     110  | aus Syntaxgr
  564. nden weder Infile noch Outfile
  565.     111  | Zeilenpuffer
  566. berlauf
  567.     112  | Zwei "V"-Zeilen (Von User), "A"-Zeilen (An User),
  568.          | "G"-Zeilen (Gruppe)
  569.     113  | ID, Username, Gruppenname, Textzeile zu lang
  570.     114  | Auf eine Textzeile folgt kein neuer Block
  571.          |
  572.     120  | Fehler beim Zuladen einer Datei
  573.          |
  574.     150  | Textzeile wird durch Konvertierung zu lang
  575.          |
  576.     201  | Dateifehler (erzeugen)
  577.     250  | Dateifehler (schreiben)
  578.     299  | Dateifehler (schreiben beim Schlie
  579.          |
  580. 2 Environment
  581. ? Environment
  582.  IO-Converter verwendet keine Environment-Variablen.
  583. 2 Installation
  584. ? Installation
  585.  IO-Converter kann unterschiedlich installiert werden. Wer ein eigenes
  586.  Tausch-Script erstellen kann oder Scripten f
  587. r die Mupfel schreibt, wird
  588.  auch leicht in der Lage sein, IO-Converter entsprechend aufzurufen. Im
  589.  Folgenden soll deshalb die Installation f
  590. r CAT gesondert beschrieben
  591.  werden.
  592. 3 Installation als CAT-I/O-Filter
  593. ? Installation als CAT-I/O-Filter
  594.  IO-Converter kann als I/O-Filter f
  595. r CAT installiert werden.
  596.  Erstellen Sie hierzu zun
  597. chst eine Filterdatei f
  598. r Infiles und eine
  599.  weitere Filterdatei f
  600. r Outfiles. Gehen Sie dann wie folgt vor:
  601. #\begin{enumerate}
  602. #\item "Offnen Sie in CAT den Dialog \fbox{\strut\texttt{Optionen}}
  603. #\fbox{\strut\texttt{I/O-Filter...}}.
  604. #\item W"ahlen Sie einen freien Eintrag
  605. #(\fbox{\strut\texttt{Nicht installiert}}) aus.
  606. #\item Geben Sie einen Namen, z.B. \texttt{IO-Converter}, ein.
  607. #\item Stellen Sie sicher, da"s bei \texttt{Wof"ur:}
  608. #\fbox{\strut\texttt{~f"ur In/Outfile~}} angegeben ist.
  609. #\item Klicken Sie auf \texttt{Programm: \fbox{\strut~~~~~leer~~~~~}} und
  610. #w"ahlen Sie dann \texttt{io\_conv.ttp} aus.
  611. #\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} f"ur Infile} an.
  612. #\item Geben Sie die Parameterzeile f"ur das Infile an. Dies k"onnte z.B.
  613. #\begin{verbatim}
  614. #   -f infile.cnf $M$F
  615. #\end{verbatim}
  616. #sein.
  617. #\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} f"ur Outfile} an.
  618. #\item Geben Sie die Parameterzeile f"ur das Outfile an. Dies k"onnte z.B.
  619. #\begin{verbatim}
  620. #   -f outfile.cnf $I$O
  621. #\end{verbatim}
  622. #sein.
  623. #\item Kreuzen Sie den Knopf \texttt{\fbox{\strut~~} aktiv} an.
  624. #\end{enumerate}
  625.    1. 
  626. ffnen Sie in CAT den Dialog <Optionen|I/O-Filter...>.
  627.    2. W
  628. hlen Sie einen freien Eintrag ([Nicht installiert]) aus.
  629.    3. Geben Sie einen Namen, z.B. IO-Converter, ein.
  630.    4. Stellen Sie sicher, da
  631.  bei "Wof
  632. r:" [  f
  633. r In/Outfile  ]
  634.       angegeben ist.
  635.    5. Klicken Sie auf "Programm: [     leer      ]" und w
  636. hlen Sie
  637.       dann io_conv.ttp aus.
  638.    6. Kreuzen Sie den Knopf "[ ] f
  639. r Infile" an.
  640.    7. Geben Sie die Parameterzeile f
  641. r das Infile an. Dies k
  642.       z.B. "-f infile.cnf $M$F" sein.
  643.    8. Kreuzen Sie den Knopf "[ ] f
  644. r Outfile" an.
  645.    9. Geben Sie die Parameterzeile f
  646. r das Outfile an. Dies k
  647.       z.B. "-f outfile.cnf $I$O" sein.
  648.   10. Kreuzen Sie den Knopf "[ ] aktiv" an.
  649.  Der Dialog m
  650. te jetzt in etwa so aussehen:
  651. #\begin{center}
  652. #\framebox[.67\textwidth][c]{\parbox{.65\textwidth}{\tt
  653. # \hspace*{\fill}\\
  654. # In- und Outfile-Filter installieren\hfill\\
  655. # \hspace*{\fill}\\
  656. # Filter:~~~~\fbox{\strut~~IO-Converter~~}\fbox{\strut\,$\downarrow$\,}\hfill\\
  657. # \hspace*{\fill}\\
  658. # Name:~~~~~~IO-Converter\underline{~~~~~~}~~~~~~\fbox{\strut\,x\,} aktiv\hfill\\
  659. # \hspace*{\fill}\\
  660. # Programm:~~\fbox{\strut~~IO\_CONV.TTP~~}\hfill\\
  661. # \hspace*{\fill}\\
  662. # Wof"ur:~~~~~\fbox{\strut f"ur In-/Outfile}\fbox{\strut\,$\downarrow$\,}~~~~~\fbox{\strut\,$\downarrow$\,} f"ur Infile\hfill\\
  663. # \hspace*{20em}\fbox{\strut\,$\downarrow$\,} f"ur Outfile\hfill\\
  664. # Kommandozeile f"ur Infile:\hfill\\
  665. # -f infile.cnf \$M\$F\underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\hfill\\
  666. # \hspace*{\fill}\\
  667. # Kommandozeile f"ur Outfile:\hfill\\
  668. # -f outfile.cnf\$I\$O\underline{~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}\hfill\\
  669. # \hspace*{\fill}}}
  670. #\end{center}
  671.       -----------------------------------------------------------
  672.      |                                                           |
  673.      | In- und Outfile-Filter installieren                       |
  674.      |                                                           |
  675.      | Filter:    [  IO-Converter  ][v]                          |
  676.      |                                                           |
  677.      | Name:      IO-Converter________      [x] aktiv            |
  678.      |                                                           |
  679.      | Programm:  [  IO_CONV.TTP   ]                             |
  680.      |                                                           |
  681.      | Wof
  682. r:     [f
  683. r In-/Outfile ][v]     [x] f
  684. r Infile       |
  685.      |                                      [x] f
  686. r Outfile      |
  687.      | Kommandozeile f
  688. r Infile:                                 |
  689.      | -f infile.cnf $M$F_______________________________________ |
  690.      |                                                           |
  691.      | Kommandozeile f
  692. r Outfile:                                |
  693.      | -f outfile.cnf $I$O______________________________________ |
  694.      |                                                           |
  695.       -----------------------------------------------------------
  696.  Sollten Sie IO-Converter nur f
  697. r Infiles installieren wollen, so
  698.  entfallen Punkt (6) und (7).
  699.  Sollten Sie IO-Converter nur f
  700. r Outfiles installieren wollen, so
  701.  entfallen Punkt (8) und (9).
  702.  Eine Besonderheit tritt ein, wenn Sie neben IO-Converter auch PGP
  703.  verwenden wollen. In diesem Fall sollte IO-Converter zweimal installiert
  704.  werden, einmal f
  705. r Infiles `vor` dem PGP-Utility, einmal f
  706. r Outfiles
  707.  `nach` dem PGP-Utility. Auf diese Weise kann IO-Converter jeweils auf
  708.  die unverschl
  709. sselten Nachrichten wirken.
  710. 3 Info-Zeilen-Formate in CAT
  711. ? Info-Zeilen-Formate in CAT
  712.  Ich empfehle, die Formate f
  713. r die beiden Infozeilen in CAT wie folgt
  714.  einzustellen:
  715.     '* Gruppe: 'G'\015* Name: 'U'\015'
  716.     '* An: 'U'\015'
  717.  oder:
  718.     '* Gruppe: 'G'\015* Name: 'R'\015'
  719.     '* An: 'U'\015* Name: 'R'\015'
  720.  Bei gleichzeitiger Verwendung von Jelly Cat ab Version 1.1 gen
  721. gt in
  722.  jedem Fall ein Format der Form:
  723.     '* Name: 'R'\015'
  724.  Dabei ist statt "\015" jeweils [CTRL][M] zu dr
  725. cken.
  726.  Die Bedeutung der beiden Formate entnehmen Sie bitte dem Kapitel 
  727.  den Infoblock. Die erste Zeile kann in CAT normalerweise mit [ALT][N],
  728.  die zweite mit [ALT][SHIFT][N] erreicht werden. Die erste ist bei
  729.  Kommentaren in Gruppen, die zweite bei PM-Kommentaren sinnvoll (solange
  730.  CAT Kommentare im Infile anders behandelt als neue Mails).
  731.  Eingestellt werden die Formate in CAT im "Optionen"-Men
  732. ber den
  733. punkt "Formate...". N
  734. heres ist dem CAT-Handbuch oder dem
  735.  CAT-Hypertext zu entnehmen.
  736. 2 Filterdatei
  737. ? Filterdatei
  738.  Gegen
  739. ber der ersten Version von IO-Converter hat sich der
  740.  Aufbau der Filterdatei grundlegend ge
  741. ndert. Aus diesem Grund wurde
  742.  auch die Standardendung von "`.dat`" in "`.cnf`" ge
  743. ndert. Die alten
  744.  Filterdateien sind nicht mehr kompatibel, k
  745. nnen jedoch mit wenigen
  746. nderungen in das neue Format gebracht werden. Betroffen ist nur das
  747.  Pattern-Matching (die Platzhalter, die verwendet werden konnten). Dieses
  748.  wurde durch "Regul
  749. re Ausdr
  750. cke" ersetzt, die wesentlich m
  751. chtiger sind.
  752. 3 Regul
  753. re Ausdr
  754. ? Regul
  755. re Ausdr
  756. ? regul
  757. re Ausdr
  758. ? regul
  759. rer Ausdruck
  760. ? regul
  761. rem Ausdruck
  762.  Der regul
  763. re Ausdruck beschreibt ein zu suchendes Muster. Dabei sind
  764.  verschiedene Sonderzeichen m
  765. glich, die f
  766. r andere Zeichen bzw. eine
  767.  ganze Reihe anderer Zeichen stehen.
  768. @#|l|p{.8\textwidth}|
  769. #\hline
  770.     "."   Der Punkt steht f
  771. r ein beliebiges Zeichen.
  772. #\texttt{.} &
  773. #         Der Punkt steht f"ur ein beliebiges Zeichen.\\\hline
  774.     "^"   Das Caret steht f
  775. r den Zeilenanfang. Dies wird derzeit
  776.           nicht ausgewertet, mu
  777.  aber gequotet werden (s.u.).
  778. #\texttt{\symbol{94}} &
  779. #         Das Caret steht f"ur den Zeilenanfang. Dies wird derzeit
  780. #         nicht ausgewertet, mu
  781.  aber gequotet werden (s.u.).\\\hline
  782.     "$"   Das Dollarzeichen steht f
  783. r das Zeilenende.
  784. #\texttt{\$} &
  785. #         Das Dollarzeichen steht f"ur das Zeilenende.\\\hline
  786.     "\"   Der Backslash dient dem Quoten einzelner Zeichen. Um z.B.
  787.           das "."-Zeichen selbst darstellen zu k
  788. nnen, schreiben Sie
  789.           "\."; ebenso "\\", "\^", "\$". Sonderzeichen m
  790.           grunds
  791. tzlich gequotet werden.
  792. #\texttt{\symbol{92}} &
  793. #         Der Backslash dient dem Quoten einzelner Zeichen. Um z.B.
  794. #         das "`\texttt{.}"'-Zeichen selbst darstellen zu k"onnen,
  795. #         schreiben Sie "`\texttt{\symbol{92}.}"'; ebenso
  796. #         "`\texttt{\symbol{92}\symbol{92}}"',
  797. #         "`\texttt{\symbol{92}\symbol{94}}"',
  798. #         "`\texttt{\symbol{92}\$}"'. Sonderzeichen m"ussen grunds"atzlich
  799. #         gequotet werden.\\\hline
  800.     "*"   Wenn einem Zeichen ein "*" folgt, bedeutet das, da
  801.           letzte Zeichen beliebig oft (auch gar nicht) auftreten
  802.           darf.
  803. #\texttt{*} &
  804. #         Wenn einem Zeichen ein "`\texttt{*}"' folgt, bedeutet
  805. #         das, da"s das letzte Zeichen beliebig oft (auch gar nicht)
  806. #         auftreten darf.\\\hline
  807.     "+"   Wie "*", jedoch mu
  808.  das letzte Zeichen mindestens einmal
  809.           auftreten.
  810. #\texttt{+} &
  811. #         Wie "`\texttt{*}"', jedoch mu
  812.  das letzte Zeichen mindestens
  813. #         einmal auftreten.\\\hline
  814.     "?"   Wie "*", jedoch darf das letzte Zeichen h
  815. chstens einmal
  816.           auftreten.
  817. #\texttt{?} &
  818. #         Wie "`\texttt{*}"', jedoch darf das letzte Zeichen h"ochstens
  819. #         einmal auftreten,\\\hline
  820.     "|"   Der regul
  821. re Ausdruck links davon oder rechts davon mu
  822.           zutreffen (z.B. trifft "abc|xyz" sowohl auf "abc" als auch
  823.           auf "xyz", nicht jedoch auf "abz" zu).
  824. #\texttt{\symbol{124}} &
  825. #         Der regul"are Ausdruck links davon oder rechts davon mu
  826. #         zutreffen. (z.B. trifft "`\texttt{abc\symbol{124}xyz}"' sowohl
  827. #         auf "`\texttt{abc}"' als auch auf "`\texttt{yxz}"', nicht
  828. #         jedoch auf "`\texttt{abz}"' zu).\\\hline
  829.     "[]"  Zeichensatz.
  830.           Eine Zeichenkette in eckigen Klammern steht f
  831. r genau
  832.           diese Zeichen, aber keine anderen. Wenn das erste Zeichen
  833.           ein Caret ist, steht der Zeichensatz f
  834. r alle Zeichen
  835.           au
  836. er den angegebenen.
  837. @autorefoff
  838.           Beispiele:
  839. @autorefon
  840.             "[xyz]" steht f
  841. r "x" oder "y" oder "z",
  842.             "[^xyz]" steht f
  843. r alles au
  844. er "x", "y" oder "z"
  845.           Ein Zeichenbereich kann durch "-" angegeben werden:
  846.             "[a-z]" steht f
  847. r alle Kleinbuchstaben,
  848.             "[0-9]" steht f
  849. r alle Ziffern,
  850.             "[0-9a-fA-F]" steht f
  851. r alle Hexadezimalzeichen,
  852.           Achtung:
  853.             "[z-a]" steht f
  854. r gar nichts!
  855. #\texttt{[\,]} & Zeichensatz.\newline
  856. #         Eine Zeichenkette in eckigen Klammern steht f"ur genau
  857. #         diese Zeichen, aber keine anderen. Wenn das erste Zeichen
  858. #         ein Caret ist, steht der Zeichensatz f"ur alle Zeichen
  859. #         au"ser den angegebenen.\newline
  860. #         Beispiele:
  861. #         \begin{description}
  862. #         \item["`\texttt{[abc]}"'] steht f"ur "`\texttt{a}"' oder
  863. #                                   "`\texttt{b}"' oder "`\texttt{c}"',
  864. #         \item["`\texttt{[\symbol{94}abc]}"'] steht f"ur alles au"ser
  865. #                                              "`\texttt{a}"',
  866. #                                              "`\texttt{b}"' oder
  867. #                                              "`\texttt{c}"'
  868. #        \end{description}
  869. #        Ein Zeichenbereich kann durch "`\texttt{-}"' angegeben werden:
  870. #        \begin{description}
  871. #        \item["`\texttt{[a-z]}"'] steht f"ur alle Kleinbuchstaben,
  872. #        \item["`\texttt{[0-9]}"'] steht f"ur alle Ziffern,
  873. #        \item["`\texttt{[0-9a-fA-F]}"'] steht f"ur alle Hexadezimalzeichen,
  874. #        \end{description}~\newline
  875. #        Achtung:
  876. #        \begin{description}
  877. #        \item["`\texttt{[z-a]}"'] steht f"ur gar nichts!
  878. #        \end{description}\\\hline
  879.     "()" Ein Ausdruck in runden Klammern stellt einen Unterbereich dar.
  880.          Unterbereiche sind z.B. zusammen mit "|" n
  881. tzlich (z.B. steht
  882.          "(begin|end) +.*" f
  883. r alles, was mit "begin" oder "end",
  884.          gefolgt von mindestens einem Leerzeichen anf
  885. ngt).
  886. #\texttt{()} &
  887. #        Ein Ausdruck in runden Klammern stellt einen Unterbereich dar.
  888. #        Unterbereiche sind z.B. zusammen mit "`\texttt{\symbol{124}}"'
  889. #        n"utzlich (z.B. steht "`\texttt{(begin|end) +.*}"' f
  890. r alles,
  891. #        was mit "`\texttt{begin}"' oder "`\texttt{end}"', gefolgt von
  892. #        mindestens einem Leerzeichen anf"angt).\\\hline
  893. 3 Aufbau der Filterdatei
  894. ? Filterdateiaufbau
  895.  Die Filterdatei besteht aus einzelnen Filterdefinitionen. Jede dieser
  896.  Filterdefinitionen wird von einem Schl
  897. sselwort eingeleitet und reicht
  898.  bis zum n
  899. chsten Schl
  900. sselwort.
  901.  Es gibt sechs Schl
  902. sselw
  903. rter, die unterschiedliche Filter einleiten:
  904.  FILTER, ALLE, GRUPPE, PERSON, WEGEN, ZEILE. Au
  905. er dem ALLE-Filter, folgt
  906.  auf jedes Schl
  907. sselwort ein Gleichheitszeichen und eine n
  908.  Filterspezifikation bzw. ein Filtername.
  909.  Die Bedeutung der einzelnen Filter ist den jeweiligen Unterkapiteln zu
  910.  entnehmen.
  911.  Innerhalb jeder Filterdefinition kann nun eine ganze Reihe von
  912.  Filteraktionen definiert werden. Jede Filteraktion ist durch ein
  913.  Schl
  914. sselzeichen am Zeilenanfang gekennzeichnet. Eine Besonderheit
  915.  stellen dabei Zeilen dar, die mit einem Doppelkreuz (#) oder einem
  916.  Semikolon (;) beginnen. Diese Zeilen werden nicht ausgewertet, sondern
  917.  stellen Kommentare dar. Leerzeilen werden wie Kommentare behandelt.
  918.  Kommentare d
  919. rfen als einziges bereits vor dem ersten Schl
  920. sselwort
  921.  stehen.
  922.  Die Filter werden sp
  923. ter in zur Definition umgekehrter Reihenfolge
  924.  ausgef
  925. hrt, das hei
  926. t, der zuletzt definierte Filter wird als erster,
  927.  der zuerst definierte Filter als letzter abgearbeitet.
  928.  Alle Zeilen innerhalb der Filterdatei werden als C-Strings
  929.  interpretiert.
  930.  IO-Converter liegen zwei Beispielfilterdateien "infile.cnf" und
  931.  "outfile.cnf" bei, mit denen die Verwendung demonstriert wird.
  932. 4 Filteraktionen
  933. ? Filteraktionen
  934. er Leerzeilen sind derzeit folgende Zeilen definiert:
  935. @#|l|p{.8\textwidth}|
  936. #\hline
  937. # Zeichen     & Aktion\\\hline
  938. #\texttt{\#}  & Kommentarzeile\\
  939. #\texttt{;}   & Kommentarzeile\\
  940. #\texttt{!}   & Aktivierung eines FILTER-Filters\\
  941. #\texttt{?}   & Inverse Aktivierung eines FILTEr-Filters\\
  942. #\texttt{-}   & Filteroption\\
  943. #\texttt{>}   & Einzelzeichenersetzung\\
  944. #\texttt{<}   & diese Zeile geh"ort zu einer \texttt{>}-Zeile\\\hline
  945. #\texttt{:}   & Einfache Stringersetzung\\
  946. #\texttt{\dq} & Erweiterte Stringersetzung\\
  947. #\hline
  948.     Zeichen | Aktion
  949.    ---------|--------------------------------------------------
  950.        #    | Kommentarzeile
  951.        ;    | Kommentarzeile
  952.        !    | Aktivierung eines Filters von Typ FILTER
  953.        ?    | Inverse Aktivierung eines Filters vom Typ FILTER
  954.        -    | Filteroption
  955.        >    | Einzelzeichenersetzung
  956.        <    | diese Zeile geh
  957. rt zu einer >-Zeile
  958.        :    | Einfache Stringersetzung
  959.        "    | Erweiterte Stringersetzung
  960. 5 Kommentarzeile
  961. ? Kommentarzeile
  962. #\par\null\par\noindent
  963.  Eine Kommentarzeile hat folgenden regul
  964. ren Aufbau:
  965.                  ^ *[#;].*$
  966.  Das hei
  967. t, sie beginnt ("^") mit einer beliebigen Anzahl an Leerzeichen
  968.  (" *"), gefolgt von einem Doppelkreuz oder Semikolon ("[#;]") und
  969.  endet am Zeilenende (".*$").
  970.  Kommentarzeilen werden komplett ignoriert. Zwar verlangsamen sie das
  971.  Einlesen der Filterdatei, dies sollte jedoch niemanden davon abhalten,
  972.  seine Filterdateien ordentlich zu kommentieren!
  973.  Ohne ordentliche Kommentierung wird die Fehlersuche mit Sicherheit sehr
  974.  schwer. Fehler jedoch sind zumindest am Anfang in Folge der
  975.  fehlertr
  976. chtigen regul
  977. ren Ausr
  978. cke durchaus zu erwarten.
  979. 5 Aktivierung eines Filters von Typ FILTER
  980. ? Aktivierung eines Filters von Typ FILTER
  981. #\par\null\par\noindent
  982.  Eine Aktivierungszeile hat den folgenden Aufbau:
  983.                 !@{I}Filtername@{i}
  984. #\begin{center}
  985. #\texttt{!}\emph{Filtername}
  986. #\end{center}
  987.  Dabei gibt der `Filtername` den Namen eines Filters vom Typ FILTER an,
  988.  der bei G
  989. ltigkeit des aktuellen Filters ebenfalls g
  990. ltig werden soll.
  991.  Der zu aktivierende Filter mu
  992.  in der Filterdatei vor dem Filter stehen,
  993.  der die Aktivierungszeile enth
  994.  Auf diese Weise ist es m
  995. glich, Filter innerhalb von Filtern aufzurufen.
  996.  Es ist jedoch nur eine maximale Schachtelungstiefe von 10 Filtern
  997.  erlaubt. Gr
  998. ere Schachtelungstiefen d
  999. rften in den seltensten F
  1000.  sinnvoll sein, da die Filterdefinitionen dann rasch un
  1001. bersichtlich
  1002.  werden.
  1003.  Der Filtername wird als C-String interpretiert.
  1004. 5 Inverse Aktivierung eines Filters vom Typ FILTER
  1005. ? Inverse Aktivierung eines Filters vom Typ FILTER
  1006. #\par\null\par\noindent
  1007.  Eine Aktivierungszeile hat den folgenden Aufbau:
  1008.                 ?@{I}Filtername@{i}
  1009. #\begin{center}
  1010. #\texttt{?}\emph{Filtername}
  1011. #\end{center}
  1012.  Dabei gibt der `Filtername` den Namen eines Filters vom Typ FILTER an,
  1013.  der bei G
  1014. ltigkeit des aktuellen Filters ung
  1015. ltig werden soll.
  1016.  Beinhaltet jener Filter ebenfalls Filteraktivierungen, so werden diese
  1017.  zu inversen Filteraktivierungen. Beinhaltet jener Filter ebenfalls
  1018.  inverse Filteraktivierungen, so werden diese zu Filteraktivierungen.
  1019.  Der invers zu aktivierende Filter mu
  1020.  in der Filterdatei vor dem Filter
  1021.  stehen, der die Aktivierungszeile enth
  1022.  Auf diese Weise ist es m
  1023. glich, Filter innerhalb von Filtern wieder zu
  1024.  deaktivieren. Es ist jedoch nur eine maximale Schachtelungstiefe von 10
  1025.  Filtern erlaubt. Gr
  1026. ere Schachtelungstiefen d
  1027. rften in den seltensten
  1028. llen sinnvoll sein, da die Filterdefinitionen dann auch sehr rasch
  1029. bersichtlich werden.
  1030. 5 Filteroption
  1031. ? Filteroption
  1032. #\par\null\par\noindent
  1033.  Eine Filteroptionszeile hat folgenden Aufbau:
  1034.                 -@{I}Option@{i}=@{I}Wert@{i}
  1035. #\begin{center}
  1036. #\texttt{-}\emph{Option}\texttt{=}\emph{Wert}
  1037. #\end{center}
  1038.  Ist der zugeh
  1039. rige Filter aktiviert (g
  1040. ltig), so erh
  1041. lt die `Option`
  1042.  den angegebenen `Wert`. Derzeit sind verschiedene Filteroptionen
  1043.  definiert, deren Einzelbedeutungen dem entsprechenden Kapitel zu
  1044.  entnehmen sind:
  1045. @#|l|l|l|
  1046. #\hline
  1047. #Option         & Typ      & Standardwert\\\hline
  1048. #Anrede         & Symbol   & off         \\
  1049. #Controlfilter  & Schalter & off         \\
  1050. #Dateiladen     & Schalter & off         \\
  1051. #Filterschutz   & Schalter & off         \\
  1052. #Footer         & Schalter & off         \\
  1053.            & Schalter & off         \\
  1054. #LALL-Filter    & Schalter & off         \\
  1055. #Leermailfilter & Schalter & off         \\
  1056. #Quoteumbruch   & Schalter & off         \\
  1057. #RE-Filter      & Schalter & off         \\
  1058. #Zeilenl
  1059. nge    & Zahlwert & 16384       \\\hline
  1060.          Option         | Typ      | Standardwert
  1061.         ----------------|----------|--------------
  1062.          Anrede         | Symbol   | off
  1063.          Controlfilter  | Schalter | off
  1064.          Dateiladen     | Schalter | off
  1065.          Filterschutz   | Schalter | off
  1066.          Footer         | Schalter | off
  1067.          Gru
  1068.            | Schalter | off
  1069.          LALL-Filter    | Schalter | off
  1070.          Leermailfilter | Schalter | off
  1071.          Quoteumbruch   | Schalter | off
  1072.          RE-Filter      | Schalter | off
  1073.          Zeilenl
  1074. nge    | Zahlwert | 16384
  1075.  Da beliebig viele Optionen innerhalb eines Filters angegeben werden
  1076.  und au
  1077. erdem mehrere Filter gleichzeitig aktiv sein k
  1078. nnen, w
  1079. re es bei
  1080.  einigen Optionen denkbar, da
  1081.  widerspr
  1082. chliche Einstellungen aktiviert
  1083.  werden. In diesem Fall ist in der Regel die Einstellung des zuletzt
  1084.  abgearbeiteten Filters g
  1085. ltig. N
  1086. heres dazu ist den jeweiligen Optionen
  1087.  zu entnehmen, so gibt es z.B. bei "Zeilenl
  1088. nge", "Anrede", "Gru
  1089. " und
  1090.  "Footer" Ausnahmen von dieser Regel.
  1091. 6 Filteroption Anrede
  1092. ? Anrede
  1093. #\par\null\par\noindent
  1094.  Es geh
  1095. rt nun einmal zum guten Ton, da
  1096.  man die Leute mit einem
  1097. hlichen "Hallo" oder 
  1098. hnlichem anredet. Manch einer h
  1099. lt dergleichen
  1100. r Tand, der nur die Mail verg
  1101. ert, das Datenaufkommen erh
  1102.  Plattenplatz verschwendet u.
  1103. . Andere wiederum sind gekr
  1104. nkt, wenn man
  1105.  den freundlichen Gru
  1106.  am Anfang (oder Ende) vergi
  1107.  IO-Converter bietet die M
  1108. glichkeit, verschiedene Begr
  1109. ungen zuf
  1110.  auszuw
  1111. hlen und automatisch an den Anfang der Mail zu setzen. Dabei
  1112.  werden zwei unterschiedliche Konzepte unterst
  1113. tzt und vereinigt.
  1114.  IO-Converter versucht zun
  1115. chst, aus dem Infoblock oder dem Mailheader
  1116.  eine Adresse oder einen Namen f
  1117. r die Anrede zu ermitteln. Gelingt dies,
  1118.  so wird eine Begr
  1119. ungsanrede 
  1120. ber die Nicknamedatei gesetzt. Ist dort
  1121.  keine Anrede definiert, so wird eine der fest eingebauten Anreden mit
  1122.  Namen versehen und verwendet.
  1123.  Kann IO-Converter keinen Empf
  1124. ngernamen ermitteln, so wird eine der
  1125.  eingebauten Anreden ohne Namen verwendet. Jede der Anreden kann einzeln
  1126.  eingeschaltet werden:
  1127.                        -Anrede=hallo
  1128.                        -Anrede=hi
  1129.                        -Anrede=moin
  1130.                        -Anrede=servus
  1131.                        -Anrede=hall
  1132.                        -Anrede=mog
  1133.                        -Anrede=ave
  1134.                        -Anrede=salve
  1135.                        -Anrede=sei gegr
  1136.                        -Anrede=peace
  1137.                        -Anrede=gr
  1138.                        -Anrede=hello
  1139.                        -Anrede=bonjour
  1140.                        -Anrede=ahugahaga
  1141.                        -Anrede=bonsai
  1142.                        -Anrede=mah-jongg
  1143. erdem kann jegliche Anrede mit einem der Abschaltwerte, die bei der
  1144.  Option "Controlfilter" beschrieben sind, verhindert werden. In dem Fall
  1145. tzt es auch nichts, wenn eine Anrede von einem anderen aktiven Filter
  1146.  wieder eingeschaltet wird. Die Abschaltung hat absolute Priorit
  1147. t. Damit
  1148.  ist es m
  1149. glich, einige Anreden generell freizuschalten und f
  1150. r bestimmte
  1151.  Empf
  1152. nger alle Anreden abzuschalten. Mit einem der Einschaltwerte, die
  1153.  bei der Option "Controlfilter" angegeben sind, k
  1154. nnen s
  1155. mtliche Anreden
  1156.  eingeschaltet werden, aber auch dies nur, wenn sie nicht explizit
  1157.  abgeschaltet sind.
  1158.  Ist keine dieser Anreden eingeschaltet, so wird auch keine Anrede aus
  1159.  der Nicknamedatei verwendet!
  1160. 6 Filteroption Controlfilter
  1161. ? Controlfilter
  1162. #\par\null\par\noindent
  1163.  Hin und wieder kommt es vor, da
  1164.  ein anderer I/O-Filter Control-Zeichen
  1165.  mit ASCII-Code kleiner 32 in Mails einmischt. Ich hatte bei besonders
  1166.  langen Mails auch einmal CAT in einer 
  1167. lteren Version im Verdacht, hin
  1168.  und wieder NUL-Bytes einzustreuen.
  1169.  Solche Steuerzeichen haben zwei Nachteile. Zum einen werden sie von der
  1170.  MAUS h
  1171. licherweise in Fragezeichen ("?") gewandelt, zum anderen weigert
  1172.  sich CAT selbst (zumindest bis Version 2.63) Mails mit Steuerzeichen zu
  1173.  lesen.
  1174.  Mit einer der Einstellungen:
  1175.         -Controlfilter=on
  1176.         -Controlfilter=true
  1177.         -Controlfilter=yes
  1178.         -Controlfilter=ein
  1179.         -Controlfilter=wahr
  1180.         -Controlfilter=ja
  1181. nnen solche Steuerzeichen eliminiert werden, wohingegen bei einer der
  1182.  Einstellungen:
  1183.         -Controlfilter=off
  1184.         -Controlfilter=false
  1185.         -Controlfilter=no
  1186.         -Controlfilter=aus
  1187.         -Controlfilter=falsch
  1188.         -Controlfilter=nein
  1189.  Steuerzeichen 
  1190. bernommen werden.
  1191.  Bei widerspr
  1192. chlichen Angaben z
  1193. hlt diejenige, die in der Filterdatei am
  1194.  weitesten oben steht, also zuerst definiert wurde.
  1195. 6 Filteroption Dateiladen
  1196. ? Dateiladen
  1197. #\par\null\par\noindent
  1198.  Es ist m
  1199. glich, Text-Dateien zu einem Mailtext hinzuzuladen. Dazu wird
  1200.  in den Text eine Zeile:
  1201.       $Datei{@{B}Dateiname@{b}}
  1202. #\begin{quote}
  1203. #      \verb|$Datei{|\textsl{Dateiname}\verb|}|
  1204. #\end{quote}
  1205.  eingef
  1206. gt. Nach der schlie
  1207. enden Klammer darf kein Text, auch kein
  1208.  Leerzeichen, mehr folgen.
  1209.  Die Datei mit dem `Dateiname`n wird dann an der entsprechenden Stelle in
  1210.  den Text eingef
  1211. gt. Der Text unterliegt der weiteren Filterung.
  1212.  Innerhalb des Textes werden aber keine weiteren Dateien eingeladen.
  1213.  Hinweis: Als Zeilenumbruch wird innerhalb des einzuf
  1214. genden Textes
  1215.  sowohl CR+LF als auch LF erkannt. Ein einzelnes CR wird hingegen
  1216.  ignoriert.
  1217.  Soll der Text keiner weiteren Filterung unterliegen, also gesch
  1218.  sein, so verwendet man "$$Datei" an Stelle von "$Datei".
  1219.  Die Optionswerte zur Aktivierung und Deaktivierung dieses Mechanismus
  1220.  sind wie bei der Filteroption "Controlfilter" zu verwenden. Bei
  1221.  widerspr
  1222. chlichen Angaben z
  1223. hlt ebenfalls diejenige, die in der
  1224.  Filterdatei am weitesten oben steht, also zuerst definiert wurde.
  1225. 6 Filteroption Filterschutz
  1226. ? Filterschutz
  1227. #\par\null\par\noindent
  1228.  Sowohl beim Versenden, als auch beim Empfang z.B. von UUE-codierten
  1229.  (Bin
  1230. r)-Dateien, w
  1231. re es katastrophal, wenn innerhalb des UUE-Teils
  1232.  irgendeine Ersetzung stattfinden w
  1233. rde. In der Regel w
  1234. re es dann nicht
  1235. @autorefoff
  1236.  mehr m
  1237. glich, den urspr
  1238. nglichen Inhalt zu rekonstruieren. Deshalb
  1239. @autorefon
  1240.  existieren verschiedene Mechanismen, um Teile einer Mail von der
  1241.  Filterung auszunehmen.
  1242.  Gehorcht eine Textzeile innerhalb einer Mail einem der folgenden
  1243.  regul
  1244. ren Ausdr
  1245.         ^begin: .*$
  1246.         ^begin$
  1247.         ^table$
  1248.         ^\$begin$
  1249.         ^-----PGP START MESSAGE-----$
  1250.  so wird ab dieser Zeile nicht mehr gefiltert (es erfolgt auch kein
  1251.  Zeilenumbruch entsprechend der Filteroption Zeilenl
  1252. nge). Die Filterung
  1253.  wird solange unterdr
  1254. ckt, bis das Mailende erreicht wird, oder bis eine
  1255.  Zeile gefunden wird, die einem der regul
  1256. ren Ausdr
  1257.         ^end$
  1258.         ^\$end$
  1259.         ^-----PGP END MESSAGE-----$
  1260.  gehorcht. Nach dieser Zeile wird wieder gefiltert. Bei den Varianten
  1261.  "$begin" und "$end" wird au
  1262. erdem die jeweilige Textzeile gel
  1263. scht.
  1264.  Da nun leider Mails nur eine maximale L
  1265. nge von 16000 Zeichen enthalten
  1266. rfen, auf der anderen Seite UUE-Teile oft l
  1267. nger sind, werden
  1268.  UUE-Teile oftmals einfach gesplittet (ohne die Segmentierungsoption von
  1269.  UUE zu verwenden). Diese UUE-Teile sind dann nicht mit "table" bzw.
  1270.  "begin" und "end" eingefa
  1271. t. Daher wurden zwei weitere Schutzmechanismen
  1272.  implementiert.
  1273.  Sind in einer Mail mehr als 2 gleichlange Zeilen mit einer Breite von
  1274.  mindestens 40 Zeichen und ohne Leerzeichen zu finden, so werden diese
  1275.  Zeilen nicht gefiltert. Aus Sicherheitsgr
  1276. nden ist zus
  1277. tzlich die
  1278. chste Zeile von der Filterung ausgenommen.
  1279.  Sind in einer Mail mehr als 4 gleichlange Zeilen mit einer Breite gr
  1280.  40 zu finden, die alle mit einem "M" beginnen, so werden diese Zeilen
  1281.  (und ebenfalls die n
  1282. chste darauf folgende) von der Filterung
  1283.  ausgenommen.
  1284.  Damit d
  1285. rften die meisten vorkommenden UUE-Codierungen von der Filterung
  1286.  ausgenommen sein. Sollte jemand der Meinung sein, er habe einen besseren
  1287.  - um nicht zu sagen: genialen - Algorithmus f
  1288. r die Erkennung
  1289.  schutzw
  1290. rdiger Mailteile, so m
  1291. ge er mir diesen bitte mitteilen.
  1292.  Eingeschaltet werden s
  1293. mtliche Ausnahmen derzeit 
  1294. ber die Filteroption
  1295.  "Filterschutz". Die Optionswerte sind wie bei der Filteroption
  1296.  "Controlfilter" zu verwenden.
  1297. 6 Filteroption Footer
  1298. ? Footer
  1299. #\par\null\par\noindent
  1300.  Der Footer wird erlaubt oder verboten. Dabei hat das Verbieten
  1301.  (Abschalten) h
  1302. here Priorit
  1303. t, das hei
  1304. t, der explizit abgeschaltete
  1305.  Footer kann nicht wieder eingeschaltet werden.
  1306. heres zu Footern findet sich bei der Erkl
  1307. rung zur Footerdatei und dem
  1308.  Schl
  1309. sselwort @FOOTER.
  1310.  Die Optionswerte sind wie bei der Filteroption "Controlfilter" zu
  1311.  verwenden.
  1312. 6 Filteroption Gru
  1313. ? Gru
  1314. #\par\null\par\noindent
  1315.  Der automatische Schlu
  1316. satz kann ein- und ausgeschaltet werden. Dabei
  1317.  hat das Abschalten h
  1318. here Priorit
  1319. t, das hei
  1320. t, der explizit
  1321.  abgeschaltete Schlu
  1322. satz kann nicht wieder eingeschaltet werden.
  1323.  Der Schlu
  1324. satz oder Schlu
  1325.  wird normalerweise direkt ans Ende der
  1326.  Mail gesetzt. Enth
  1327. lt die Mail aber eine Zeile, die nur aus zwei bis
  1328.  drei Minuszeichen besteht, oder eine Zeile, die mit "PS.", "PS:", "PS "
  1329.  oder "P.S." beginnt (wobei Gro
  1330. -/Kleinschreibung nicht beachtet wird),
  1331.  so wird der Gru
  1332.  unmittelbar vor diese Zeile gesetzt. Auf den Gru
  1333.  folgt
  1334.  dann au
  1335. erdem eine zus
  1336. tzliche Leerzeile.
  1337. heres zum Schlu
  1338. satz oder Schlu
  1339.  findet sich in der Erkl
  1340. rung zur
  1341.  Nicknamedatei unter dem Schl
  1342. sselwort @GR
  1343.  Die Optionswerte sind wie bei der Filteroption "Controlfilter" zu
  1344.  verwenden.
  1345. 6 Filteroption LALL-Filter
  1346. ? LALL-Filter
  1347. #\par\null\par\noindent
  1348.  Diese Filteroption ist ein Analogon zu "RE-Filter". Es gilt entsprechend
  1349.  das dort Geschriebene.
  1350. 6 Filteroption Leermailfilter
  1351. ? Leermailfilter
  1352. #\par\null\par\noindent
  1353.  Die MAUS erlaubt schon lange, da
  1354.  eine Mail oder ein Infotext o.
  1355.  keinen Text enth
  1356. lt. Im Outfile bekommt man dergleichen in verschiedenen
  1357. usen und unterschiedlichen Gruppen, wenn der Dollar abgelaufen ist.
  1358. @autorefoff
  1359.  Leider mag jedoch CAT (zumindest bis Version 2.63) Mails ohne Inhalt
  1360. @autorefon
  1361. berhaupt nicht und meldet dann irgendwelche obskuren Fehler.
  1362.  Mit dieser Filteroption ist es m
  1363. glich, leere Mails zu verhindern. Es
  1364.  findet ein Plausbilit
  1365. tstest statt, so da
  1366.  die Filteroption nur auf
  1367.  Mails und nicht auf Infotexte u.
  1368. . wirken sollte.
  1369.  Ein- und Auschalten der Filteroption erfolgt analog zu "Controlfilter".
  1370. 6 Filteroption Quoteumbruch
  1371. ? Quoteumbruch
  1372. #\par\null\par\noindent
  1373.  Es gibt einige Frontends f
  1374. r den Maus-Tausch, bei denen Abs
  1375. tze beim
  1376.  Quoten nicht umbrochen werden. Hat man nun in der MAUS eine feste
  1377.  Zeilenl
  1378. nge eingestellt, so f
  1379. hrt das nat
  1380. rlich dazu, da
  1381.  auch diese
  1382.  sehr langen Quote-Zeilen umbrochen werden. Das Quotekennzeichen (ein
  1383. erzeichen und eventuell Initialen) wird jedoch bei diesem Umbruch an
  1384.  den neuen Zeilenanf
  1385. ngen nicht erneut eingef
  1386. gt. Damit sind solche
  1387.  Passagen nur sehr schwer als Quotes zu erkennen.
  1388.  Genau dasselbe Problem w
  1389. rde sich normalerweise bei IO-Converter mit der
  1390.  Filteroption "Zeilenl
  1391. nge" ergeben. Ist jedoch diese Filteroption,
  1392.  "Quoteumbruch", ebenfalls aktiviert, so werden Quotes, die aus maximal
  1393.  vier Initialen (Gro
  1394. buchstaben!) und einem Gr
  1395. erzeichen bestehen,
  1396.  erkannt und jeweils an den neuen Zeilenanfang kopiert.
  1397.  Ich kann nur empfehlen, den Umbruch in der MAUS abzuschalten
  1398.  (Zeilenl
  1399. nge im N.U.D.E. auf 0 setzen) und den Umbruch IO-Converter zu
  1400. berlassen.
  1401.  Ein- und Auschalten der Filteroption erfolgt analog zu "Controlfilter".
  1402. 6 Filteroption RE-Filter
  1403. ? RE-Filter
  1404. #\par\null\par\noindent
  1405.  Im InterNet und teilweise auch im Fido ist es 
  1406. blich, bei Antworten ein
  1407.  "RE:" an den Anfang der Betreffzeile zu stellen. Teilweise folgen auch
  1408.  mehrere REs aufeinander oder wird die Anzahl als Potenz angegeben (z.B.
  1409.  "RE^5:" f
  1410. r einen Kommentar in 5. Ebene).
  1411.  Sortiert man in CAT die Stichwortliste nach Betreffs, so w
  1412. re es oft
  1413. nschenswert, wenn CAT die verschiedenen Formen von "RE" ignorieren
  1414. rde. Leider kann CAT (zumindest bis Version 2.63) auch das nicht. Auf
  1415.  der anderen Seite ist das "RE" bei funktionierender Kommentarverkettung
  1416.  ohnehin reichlich nutzlos. Daher ist IO-Converter in der Lage, die
  1417.  verschiedensten Formen von "RE" zu l
  1418. schen. Lediglich, wenn nach dem
  1419.  Entfernen der "RE"-Formen ein leerer Betreff 
  1420. brig bliebe, erfolgt
  1421.  grunds
  1422. tzlich keine Betreff-Filterung. Dabei wird auch eine eventuelle
  1423.  Filterung mit der Filteroption "LALL-Filter" ber
  1424. cksichtigt.
  1425.  Die Aktivierung und Deaktivierung erfolgt wie bei der Filteroption
  1426.  "Controlfilter".
  1427. 6 Filteroption Zeilenl
  1428. ? Zeilenl
  1429. #\par\null\par\noindent
  1430. ber diese Filteroption kann die maximale Zeilenl
  1431. nge einer Textzeile
  1432.  festgelegt werden. Dies ist z.B. n
  1433. tzlich, um PGP-Mails vor der
  1434.  Verschl
  1435. sselung bzw. nach der Entschl
  1436. sselung zu umbrechen, weil CAT
  1437.  leider nicht in der Lage ist, einmal einsortierte Nachrichten selbst neu
  1438.  zu umbrechen.
  1439.  Sind mehrere Zeilenl
  1440. ngenbeschr
  1441. nkungen aktiv, so ist die kleinste
  1442.  angegebene Zeilenbreite g
  1443. ltig.
  1444. 5 Einzelzeichenersetzung
  1445. ? Einzelzeichenersetzung
  1446. #\par\null\par\noindent
  1447.  Die Einzelzeichenersetzung ist eine zweizeilige Definition:
  1448.                  >@{I}Suchzeichen@{i}
  1449.                  <@{I}Ersatzzeichen@{i}
  1450. #\begin{center}
  1451. #\texttt{>}\emph{Suchzeichen}\\
  1452. #\texttt{<}\emph{Ersatzzeichen}\\
  1453. #\end{center}
  1454.  wobei `Suchzeichen` und `Ersatzzeichen` jeweils Folgen von Zeichen sind.
  1455.  Jedes Zeichen aus `Suchzeichen` wird durch das darunterstehende Zeichen
  1456.  in `Ersatzzeichen` ersetzt. Wichtig ist dabei, da
  1457.  jedes Zeichen
  1458.  einzeln, unabh
  1459. ngig von seinem Kontext betrachtet wird. So w
  1460. rde z.B.
  1461.  mit:
  1462.                  >0123456789
  1463.                  <1234567890
  1464.  jede Ziffer durch ihren Nachfolger (und die "9" durch die "0") ersetzt.
  1465.  Ich erinnere noch einmal daran, da
  1466.  auch an dieser Stelle eine
  1467.  C-String-Interpretation stattfindet!
  1468.  Sollen einzelne Zeichen durch Zeichenketten (Strings) oder Zeichenketten
  1469.  durch einzelne Zeichen ersetzt werden, so mu
  1470. r die Stringersetzung
  1471.  verwendet werden.
  1472.  Die Einzelzeichenersetzung ist erheblich schneller als jede der beiden
  1473.  Stringersetzungen und ben
  1474. tigt nat
  1475. rlich auch weniger Speicher.
  1476. 5 Einfache Stringersetzung
  1477. ? Stringersetzung
  1478. #\par\null\par\noindent
  1479.  Die Zeile f
  1480. r die einfache Stringersetzung ist wie folgt aufgebaut:
  1481.                  :@{I}Suchstring@{i}=@{I}Ersatzstring@{i}
  1482. #\begin{center}
  1483. #\texttt{:}\emph{Suchstring}\texttt{=}\emph{Ersatzstring}
  1484. #\end{center}
  1485.  Die Bedeutung ist dabei ganz einfach so, da
  1486.  jedes Auftreten des
  1487.  `Suchstrings` durch den `Ersatzstring` ersetzt wird.
  1488.  Aufgrund des einfachen Aufbaus ist es jedoch nicht m
  1489. glich, da
  1490.  `Suchstring` oder `Ersatzstring` Zeilenumbr
  1491. che enth
  1492. lt und damit
  1493.  zeilen
  1494. bergreifend arbeitet. Es k
  1495. nnen nur `Suchstring`s innerhalb einer
  1496.  Zeile ersetzt werden.
  1497.  Im `Suchstring` kann auch kein Gleichheitszeichen ("=") vorkommen, da
  1498.  nach dem ersten Gleichheitszeichen der `Ersatzstring` beginnt.
  1499.  Ich erinnere noch einmal daran, da
  1500.  auch an dieser Stelle eine
  1501.  C-String-Interpretation stattfindet!
  1502.  Sollte diese einfache Stringersetzung aufgrund dieser Beschr
  1503. nkungen
  1504.  nicht ausreichen, so kann man die "Erweiterte Stringersetzung"
  1505.  verwenden. Dadurch wird aber zumindest das Einlesen der Filterdatei
  1506.  langsamer, u.U. auch die Filterung selbst.
  1507. 5 Erweiterte Stringersetzung
  1508. ? Erweiterte Stringersetzung
  1509. #\par\null\par\noindent
  1510.  Die erweiterte Stringersetzung ist sowohl in der Funktion als auch in
  1511.  der Definition nicht auf einzelne Zeilen beschr
  1512. nkt. Der Aufbau ist:
  1513.                  "@{I}Suchstring@{i}" "@{I}Ersatzstring@{i}"
  1514. #\begin{center}
  1515. #\texttt{\dq}\emph{Suchstring}\texttt{\dq~\dq}\emph{Ersatzstring}\texttt{\dq}
  1516. #\end{center}
  1517.  Sowohl `Suchstring` als auch `Ersatzstring` stehen also in Anf
  1518. hrungszeichen.
  1519.  Zwischen dem Schlu
  1520. zeichen des `Suchstring`s und dem Anf
  1521. hrungszeichen
  1522.  des `Ersatzstring`s steht mindestens ein Leerzeichen.
  1523.  Zeilenumbr
  1524. che innerhalb von `Suchstring` und `Ersatzstring` werden zun
  1525.  ignoriert. Die Strings werden jedoch als C-Strings interpretiert. Sollen
  1526.  tats
  1527. chlich Zeilenumbr
  1528. che im `Suchstring` oder `Ersatzstring` auftreten, so
  1529. nnen diese explizit mit "\n" gesetzt werden.
  1530. heres zu C-Strings ist dem entsprechenden Kapitel zu entnehmen.
  1531.  Die erweiterte Stringersetzung ist zwar wesentlich m
  1532. chtiger als die
  1533.  einfache Stringersetzung. Auf der anderen Seite, dauert das Einlesen
  1534.  und Analysieren entsprechender Filter wesentlich l
  1535. nger.
  1536. 4 FILTER
  1537. ? FILTER
  1538.  Die Filterspezifikation sieht folgenderma
  1539. en aus:
  1540.                FILTER=@{I}Filtername@{i}
  1541. #\begin{center}
  1542. #\texttt{FILTER=}\emph{Filtername}
  1543. #\end{center}
  1544.  Filter von Typ FILTER werden auch "freie Filter" genannt. Der Name kommt
  1545.  daher, da
  1546.  sie selbst nicht unmittelbar, sondern nur mittelbar, also
  1547.  durch Aktivierung in anderen Filtern, g
  1548. ltig werden k
  1549. nnen.
  1550.  Freie Filter dienen in erster Linie dazu, Filter f
  1551. r verschiedene
  1552.  Aufgaben zu definieren, die dann sp
  1553. ter innerhalb von typisierten Filtern
  1554.  aktiviert werden.
  1555.  Freie Filter erm
  1556. glichen damit eine klarere Strukturierung der
  1557.  Filterdatei. Sie erleichtern die Fehlereingrenzung und helfen, Speicher
  1558.  zu sparen. Ich kann ihre Verwendung somit nur empfehlen.
  1559. 4 ALLE
  1560. ? ALLE
  1561.  Die Filterspezifikation besteht nur aus dem Schl
  1562. sselwort:
  1563.                ALLE
  1564. #\begin{center}
  1565. #\texttt{ALLE}
  1566. #\end{center}
  1567.  Ein ALLE-Filter ist immer g
  1568. ltig, das hei
  1569. t, er wirkt auf alle Mails.
  1570. ber den ALLE-Filter k
  1571. nnen z.B. Optionen eingestellt werden, die immer
  1572.  gelten sollen. Auch immer aktive Zeichen- oder Stringersetzungen sind
  1573.  denkbar.
  1574. 4 GRUPPE
  1575. ? GRUPPE
  1576.  Die Filterspezifikation besteht aus dem Schl
  1577. sselwort und einem
  1578.  regul
  1579. ren Ausdruck:
  1580.                GRUPPE=@{I}Gruppenausdruck@{i}
  1581. #\begin{center}
  1582. #\texttt{GRUPPE=}\emph{Gruppenausdruck}
  1583. #\end{center}
  1584.  Ermittelt IO-Converter anhand des Mailheaders oder u.U. auch mit Hilfe
  1585.  des Infoblocks, da
  1586.  es sich um eine 
  1587. ffentliche Mail handelt, so wird
  1588.  der `Gruppenausdruck` mit dem Gruppennamen verglichen. Pa
  1589. t der
  1590.  Gruppenname auf den `Gruppenausdruck`, so wird der Filter g
  1591. ltig.
  1592.  WICHTIG: Der `Gruppenausdruck` wird zun
  1593. chst als C-String interpretiert.
  1594.  Damit mu
  1595.  ein Backslash ("\") also bereits mit einem Backslash gequotet
  1596.  werden, ehe er als regul
  1597. rer Ausdruck interpretiert wird.
  1598.  Am Ende der Mail wird der Filter wieder deaktiviert.
  1599.  Die MAUS verlangt nicht, da
  1600.  bei Kommentaren (sowohl auf 
  1601. ffentliche als
  1602.  auch auf private Mails) die Zielgruppe (bzw. der Empf
  1603. nger) angegeben
  1604.  ist. Zumindest bis Version 2.63 verzichtet CAT darauf, diese Information
  1605.  in das Outfile zu schreiben. Bei diesen Mails kann die Gruppe von
  1606.  IO-Converter nur erkannt werden, wenn sie im Infoblock spezifiziert ist.
  1607.  Ist ein Eintrag im Infoblock vorhanden, so wird derzeit immer dieser an
  1608.  Stelle eines Eintrags im Mailheader verwendet.
  1609. 4 PERSON
  1610. ? PERSON
  1611.  Die Filterspezifikation besteht aus dem Schl
  1612. sselwort und einem
  1613.  regul
  1614. ren Ausdruck:
  1615.                 PERSON=@{I}Userausdruck@{i}
  1616. #\begin{center}
  1617. #\texttt{PERSON=}\emph{Userausdruck}
  1618. #\end{center}
  1619.  PERSON ist eine Zusammenfassung von Empf
  1620. nger und Absender, in fr
  1621. heren
  1622.  Versionen hie
  1623.  dieses Schl
  1624. sselwort noch "USER" (und fiel damit auf wie
  1625.  ein Ro
  1626. bollen auf der Autobahn).
  1627.  PERSON funktioniert analog zu GRUPPE, jedoch f
  1628. r pers
  1629. nliche Mails. Das
  1630.  erste Kriterium ist der Absender, das zweite der Empf
  1631. nger. Da in
  1632.  Outfiles immer nur der Empf
  1633. nger eingetragen wird, kann so eine
  1634.  Unterscheidung getroffen werden.
  1635. 4 WEGEN
  1636. ? WEGEN
  1637.  Die Filterspezifikation besteht aus dem Schl
  1638. sselwort und einem
  1639.  regul
  1640. ren Ausdruck:
  1641.                 WEGEN=@{I}Betreffausdruck@{i}
  1642. #\begin{center}
  1643. #\texttt{WEGEN=}\emph{Betreffausdruck}
  1644. #\end{center}
  1645.  Erkennt IO-Converter eine Betreffzeile, so wird diese zun
  1646. chst aufgrund
  1647.  der eventuell bereits aktiven Filteroptionen LALL-Filter und RE-Filter
  1648.  behandelt. Anschlie
  1649. end wird gepr
  1650. ft, ob der Betreffausdruck dem Betreff
  1651.  entspricht. Ist dies der Fall, wird der WEGEN-Filter g
  1652. ltig.
  1653.  Will man einen Filter, der auf den Betreff vor der Behandlung durch
  1654.  einen LALL- oder RE-Filter aktiv wird, so mu
  1655.  man sich mit dem
  1656.  Schl
  1657. sselwort ZEILE behelfen.
  1658. 4 ZEILE
  1659. ? ZEILE
  1660.  Die Filterspezifikation besteht aus dem Schl
  1661. sselwort und einem
  1662.  regul
  1663. ren Ausdruck:
  1664.                ZEILE=@{I}Zeilenausdruck@{i}
  1665. #\begin{center}
  1666. #\texttt{ZEILE=}\emph{Zeilenausdruck}
  1667. #\end{center}
  1668.  Der ZEILE-Filter ist die allgemeinste Form. Theoretisch k
  1669. nnten PERSON
  1670.  und GRUPPE auch durch einen Zeilenfilter ausgedr
  1671. ckt werden. Allerdings
  1672. nnten dann einige Zusatzfunktionen wie z.B. die Anrede nicht alleine
  1673.  damit arbeiten.
  1674.  Beim ZEILE-Filter werden komplette Outfile-Zeilen mit dem `Zeilenausdruck`
  1675.  verglichen, wobei er zun
  1676. chst ebenfalls als C-String interpretiert wird.
  1677.  Es wird jeweils genau eine Outfile-Zeile verglichen!
  1678.  WICHTIG: Es handelt sich dabei nicht um Text-Zeilen sondern um
  1679.  Outfile-Zeilen. Im Outfile beginnt jede Textzeile mit einem Doppelpunkt
  1680.  (":"). Welche Zeilen ansonsten z.B. im Mailheader vorkommen k
  1681. nnen, ist
  1682.  der TAUSCH-Dokumentation zu entnehmen (siehe tau_doku.hyp von Uwe Ohse).
  1683. 2 Der Infoblock
  1684. ? Infoblock
  1685.  IO-Converter wertet au
  1686. er dem Mailheader noch einige spezielle Zeilen
  1687.  aus, die dazu am Anfang des Mailtextes stehen m
  1688. ssen. Aufgrund ihres
  1689.  Informationsgehalts werden diese Zeilen "Infoblock" genannt. Vor dem
  1690.  Infoblock darf kein Text und keine Leerzeile stehen. Ausnahmen sind
  1691.  Verkettungszeilen, die entweder mit "Kommentar zu" oder mit einem
  1692.  Minuszeichen beginnen, "Reply-To:"-Zeilen und "Follow-Up:"-Zeilen, denen
  1693.  jeweils maximal eine Leerzeile folgen darf. IO-Converter macht hierbei
  1694.  keine Unterscheidung zwischen Klein- und Gro
  1695. buchstaben.
  1696.  Der Infoblock wird nach seiner Auswertung aus der Mail entfernt. Steht
  1697.  nach dem Infoblock eine Leerzeile so wird diese ebenfalls entfernt. Alle
  1698.  weiteren Leerzeilen bleiben jedoch erhalten.
  1699.  Alle Angaben im Infoblock sind optional, das hei
  1700. t, der Infoblock mu
  1701.  nicht zwingend alle Zeilen enthalten. Er kann auch ganz entfallen. In
  1702.  erster Linie ist der Infoblock dazu gedacht, bei Kommentaren den
  1703.  Gruppennamen bzw. den Empf
  1704. nger "nachzureichen".
  1705.  Folgende Zeilen sind definiert, wobei die Leerzeichen nach dem Stern und
  1706.  nach dem Doppelpunkt zwingend sind, und die Zeilen linksb
  1707. ndig mit dem
  1708.  Stern beginnen m
  1709. ssen! Die Reihenfolge der Zeilen innerhalb des
  1710.  Infoblocks ist jedoch beliebig.
  1711. #\vspace{1ex}\noindent%
  1712.  * Keine Anrede
  1713.  Die Anrede soll in jedem Fall unterbunden werden. Dies ist n
  1714. tzlich,
  1715.  wenn die Anrede aus irgendeinem Grund ausnahmsweise von Hand in den Text
  1716.  eingebaut wird oder in Kombination mit "* Kein Gru
  1717. " beim Kopieren von Mails.
  1718. #\vspace{1ex}\noindent%
  1719.  * Kein Gru
  1720.  Der Schlu
  1721. satz soll in jedem Fall unterbunden werden. Dies ist n
  1722. tzlich,
  1723.  wenn der Schlu
  1724. satz aus irgendeinem Grund von Hand in den Text eingebaut
  1725.  wird oder in Kombination mit "* Keine Anrede" beim Kopieren von Mails.
  1726. #\vspace{1ex}\noindent%
  1727.  * Kein Footer
  1728.  Der Footer soll in jedem Fall unterbunden werden. Dies ist z.B. beim
  1729.  Kopieren von Mails n
  1730. tzlich.
  1731. #\vspace{1ex}\noindent%
  1732.  * Gruppe: `argument`
  1733.  Was sich hinter dem Argument verbirgt, spielt keine Rolle. Das Argument
  1734.  wird direkt f
  1735. r den Vergleich mit GRUPPE-Filtern verwendet.
  1736.  Voraussetzung ist allerdings, da
  1737.  die Mail nicht bereits eindeutig als
  1738.  pers
  1739. nliche Mail identifiziert wurde. Ist die Zeile nicht vorhanden,
  1740.  wird statt dessen die Information aus dem Mailheader verwendet.
  1741. #\vspace{1ex}\noindent%
  1742.  * Von: `argument`
  1743.  Was sich hinter dem Argument verbirgt, spielt keine Rolle. Das Argument
  1744.  wird direkt f
  1745. r den Vergleich mit PERSON-Filtern verwendet. Ist die
  1746.  Zeile nicht vorhanden, wird statt dessen die Information aus dem
  1747.  Mailheader verwendet.
  1748. #\vspace{1ex}\noindent%
  1749.  * An: `argument`
  1750.  Was sich hinter dem Argument verbirgt, spielt zun
  1751. chst keine Rolle. Das
  1752.  Argument wird direkt f
  1753. r den Vergleich mit PERSON-Filtern verwendet
  1754.  (wenn kein Absender auszumachen ist, mit dieser Einschr
  1755. nkung k
  1756. nnen IN-
  1757.  und Outfile unterschieden werden). Voraussetzung ist jedoch, da
  1758.  Mail nicht bereits eindeutig als Gruppenmail identifiziert wurde. Ist
  1759.  die Zeile nicht vorhanden, wird statt dessen die Information aus dem
  1760.  Mailheader verwendet.
  1761.  Es wird empfohlen als Argument die vollst
  1762. ndige Mailadresse des
  1763.  Empf
  1764. ngers zu verwenden.
  1765. #\vspace{1ex}\noindent%
  1766.  * Name: `argument`
  1767.  Das Argument wird f
  1768. r die Anrede verwendet. Dabei sind folgende
  1769.  Varianten m
  1770. glich:
  1771. #\begin{itemize}
  1772. #\item Enth"alt das Argument einen Klammeraffen ("`@"'), wird davon
  1773. #      ausgegangen, da"s es sich um eine Mailadresse handelt. Nach dieser
  1774. #      Adresse wird dann in der Nickname-Datei gesucht (sehr schnelle
  1775. #      Halbierungssuche). Ist ein Nickname eingetragen, wird dieser f"ur
  1776. #      die Anrede verwendet. Ist kein Nickname, aber ein Realname
  1777. #      eingetragen, so wird dieser f"ur die Anrede verwendet.
  1778. #\item Enth
  1779. lt das Argument keinen Klammeraffen ("`@"'), wird davon
  1780. #      ausgegangen, da
  1781.  es sich um einen Realname handelt. Nach diesem
  1782. #      Realname wird in der Nickname-Datei gesucht (langsame,
  1783. #      sequentielle Suche). Ist kein entsprechender Eintrag vorhanden,
  1784. #      so wird der Realname unver
  1785. ndert verwendet. Ist ein Eintrag
  1786. #      vorhanden, der auch einen Nickname enth
  1787. lt, so wird der Nickname
  1788. #      verwendet. Ist ein Eintrag ohne Nickname vorhanden, so wird der
  1789. #      Realname in der Schreibweise der Nickname-Datei verwendet.
  1790. #\end{itemize}
  1791. a) Enth
  1792. lt das Argument einen Klammeraffen ('@@'), wird davon
  1793.    ausgegangen, da
  1794.  es sich um eine Mailadresse handelt. Nach dieser
  1795.    Adresse wird dann in der Nickname-Datei gesucht (sehr schnelle
  1796.    Halbierungssuche). Ist ein Nickname eingetragen, wird dieser f
  1797. r die
  1798.    Anrede verwendet. Ist kein Nickname, aber ein Realname eingetragen,
  1799.    so wird dieser f
  1800. r die Anrede verwendet.
  1801. b) Enth
  1802. lt das Argument keinen Klammeraffen ('@@'), wird davon
  1803.    ausgegangen, da
  1804.  es sich um einen Realname handelt. Nach diesem
  1805.    Realname wird in der Nickname-Datei gesucht (langsame, sequentielle
  1806.    Suche). Ist kein entsprechender Eintrag vorhanden, so wird der
  1807.    Realname unver
  1808. ndert verwendet. Ist ein Eintrag vorhanden, der auch
  1809.    einen Nickname enth
  1810. lt, so wird der Nickname verwendet. Ist ein
  1811.    Eintrag ohne Nickname vorhanden, so wird der Realname in der
  1812.    Schreibweise der Nickname-Datei verwendet.
  1813.  Ist keine "* Name: "-Zeile vorhanden, so wird statt dessen die
  1814.  "* An: "-Zeile verwendet. Ist auch keine "* An: "-Zeile vorhanden, so
  1815.  wird die Adresse aus dem Mailheader verwendet.
  1816.  Entsprechend dem Kapitel "Info-Zeilen-Formate in CAT", empfiehlt
  1817.  Richard, den Realname als Argument zu verwenden.
  1818.  Interessant ist vielleicht noch, da
  1819.  diverse deutsche, franz
  1820. sische und
  1821.  englische Adelstitel automatisch erkannt und entsprechend dem Nachnamen
  1822.  zugeschlagen werden. Probleme in diesem Bereich kann man durch
  1823.  Definition von Nicknames umgehen. Au
  1824. erdem kann man sich gerne an mich
  1825.  wenden.
  1826.  Jelly Cat kann ab Version 1.1 den Infoblock 
  1827. brigens vollautomatisch
  1828.  setzen. In diesem Fall wird bei "* Name: " die Empf
  1829. nger-Adresse
  1830.  eingesetzt. Jelly Cat setzt nat
  1831. rlich nur solche Zeilen ein, die nicht
  1832.  bereits vorhanden sind. Im einzelnen sind das normalerweise:
  1833. @#|l|c|c|c|
  1834. #\hline
  1835. #      Mailtyp                      &   An   &  Name  & Gruppe \\
  1836. #\hline
  1837. #      PM (neu)                     &  nein  &  nein  &  nein  \\
  1838. #      PM-Kommentar                 &   ja   &  nein  &  nein  \\
  1839. #      PM-Kommentar auf AM          &  nein  &  nein  &  nein  \\
  1840. #      AM (neu)                     &  nein  &   ja   &  nein  \\
  1841. #      AM-Kommentar                 &  nein  &   ja   &   ja   \\
  1842. #      AM-Kommentar in Fremdgruppen &  nein  &   ja   &  nein  \\
  1843. #      Kopie                        &  nein  &  nein  &  nein  \\
  1844. #      Weiterleitung                &  nein  &  nein  &  nein  \\
  1845. #\hline
  1846.       Mailtyp                      | An     | Name   | Gruppe
  1847.      ------------------------------|--------|--------|--------
  1848.       PM (neu)                     |  nein  |  nein  |  nein
  1849.       PM-Kommentar                 |   ja   |  nein  |  nein
  1850.       PM-Kommentar auf AM          |  nein  |  nein  |  nein
  1851.       AM (neu)                     |  nein  |   ja   |  nein
  1852.       AM-Kommentar                 |  nein  |   ja   |   ja
  1853.       AM-Kommentar in Fremdgruppen |  nein  |   ja   |  nein
  1854.       Kopie                        |  nein  |  nein  |  nein
  1855.       Weiterleitung                |  nein  |  nein  |  nein
  1856.  Bei "Name" wird jeweils die Adresse des kommentierten Users eingesetzt.
  1857.  Wenn man sich also selbst kommentiert w
  1858. re es angebracht, entweder von
  1859.  Hand einen anderen Namen zu setzen oder die Anrede abzuschalten. Im Fall
  1860.  der neuen 
  1861. ffentlichen Mail d
  1862. rfte es unm
  1863. glich sein, tats
  1864. chlich eine
  1865.  entsprechende Infozeile zu setzen.
  1866. #\vspace{1ex}\noindent
  1867. brigens kann man zwei verschiedene Varianten des Infoblocks leicht mit
  1868.  Hilfe des Infozeilen-Mechanismus von CAT nahezu automatisch setzen. Wie
  1869.  die Infozeilen in CAT eingestellt werden k
  1870. nnen, ist der CAT-Anleitung
  1871.  zu entnehmen (siehe auch das Kapitel "Info-Zeilen-Formate in CAT").
  1872. 2 Verkettungszeilen im Mailtext
  1873. ? Verkettungszeilen
  1874. ? Verkettungszeile
  1875.  Soll eine Verkettung gruppen
  1876. bergreifend oder in einer sogenannten
  1877.  Wildwest-Form erfolgen, so mu
  1878.  die Verkettungsinformation physikalisch
  1879.  in der ersten Zeile stehen, also noch vor einem eventuellen Info-Block.
  1880.  IO-Converter sollte keinesfalls eine Anrede oder 
  1881. hnliches vor die
  1882.  Verkettungszeile setzen, damit diese beim Empf
  1883. nger noch einwandfrei
  1884.  erkannt wird. Au
  1885. erdem darf die Zeile nicht durch Filterung verf
  1886. lscht
  1887.  werden.
  1888.  IO-Converter erkennt zwei Arten von Verkettungszeilen. Zum einen wird
  1889.  eine solche angenommen, wenn die erste Zeile mit einem Minuszeichen
  1890.  beginnt, zum anderen, wenn die erste Zeile mit "Kommentar zu" beginnt.
  1891.  Das sind die Verkettungsarten, die CAT normalerweise einsetzt. Auf diese
  1892.  Verkettungszeile darf dann noch eine Leerzeile (hier sind auch keine
  1893.  Leerzeichen erlaubt) folgen.
  1894.  Derart erkannte Verkettungszeilen werden von IO-Converter automatisch
  1895.  in einen gesch
  1896. tzten Block gewandelt. Dies ist auch dann der Fall, wenn
  1897.  die Option '-Filterschutz' nicht aktiviert ist. Auf diese Weise ist
  1898.  sichergestellt, da
  1899.  Wildwest- bzw. gruppen
  1900. bergreifende Verkettung durch
  1901.  IO-Converter nicht zerst
  1902. rt werden.
  1903.  Ebenso wird mit "Reply-To:"- und "Follow-Up:"-Zeilen verfahren.
  1904. 2 C-String-Interpretation
  1905. ? C-String
  1906. ? C-Strings
  1907.  Bei einem C-String hat der Backslash ("\") eine Sonderbedeutung, er
  1908.  leitet einen Teilstring ein, der speziell interpretiert wird. Folgende
  1909.  Sonderfolgen existieren:
  1910. @#|l|r|c@{~}p{.7\textwidth}|
  1911. #\hline
  1912. #Teilstring            & HEX && Bedeutung\\\hline
  1913. #\texttt{\symbol{92}'} &  27 & \texttt{'} & (Hochkomma, Apostroph)\\
  1914. #\texttt{\symbol{92}\dq} &  22 & \texttt{\dq} & (Anf"uhrungszeichen)\\
  1915. #\texttt{\symbol{92}?} &  3F & \texttt{?} & (Fragezeichen)\\
  1916. #\texttt{\symbol{92}\symbol{92}} &  5C & \texttt{\symbol{92}} &
  1917. #                                 (Backslash)\\
  1918. #\texttt{\symbol{92}a} &  07 &&   (Systemglocke)\\
  1919. #\texttt{\symbol{92}b} &  08 &&   (Backspace)\\
  1920. #\texttt{\symbol{92}f} &  0C &&   (Seitenvorschub)\\
  1921. #\texttt{\symbol{92}n} &  0A &&   (Wagenr"ucklauf+Zeilenvorschub)\\
  1922. #\texttt{\symbol{92}r} &  0D &&   (Wagenr"ucklauf)\\
  1923. #\texttt{\symbol{92}t} &  09 &&   (horizontaler Tabulator)\\
  1924. #\texttt{\symbol{92}v} &  0B &&   (vertikaler Tabulator)\\
  1925. #\texttt{\symbol{92}}\emph{ZZZ} &&& \emph{ZZZ} = 1 bis 3 Oktalziffen, es
  1926. #                                   wird das ASCII-Zeichen mit dem
  1927. #                                   entsprechenden Oktalwert
  1928. #                                   eingesetzt.\\
  1929. #\texttt{\symbol{92}x}\emph{HH} &&& \emph{HH} = 1 bis n
  1930. #                                   Hexadezimalziffern, es wird das
  1931. #                                   ASCII-Zeichen mit dem entsprechenden
  1932. #                                   Hexadezimalwert modulo 256
  1933. #                                   eingesetzt.\\\hline
  1934.    Teilstring | HEX | Bedeutung
  1935.   ------------|-----|-------------------------------------------
  1936.        \'     |  27 | ' (Hochkomma, Apostroph)
  1937.        \"     |  22 | " (Anf
  1938. hrungszeichen)
  1939.        \?     |  3F | ? (Fragezeichen)
  1940.        \\     |  5C | \ (Backslash)
  1941.        \a     |  07 |   (Systemglocke)
  1942.        \b     |  08 |   (Backspace)
  1943.        \f     |  0C |   (Seitenvorschub)
  1944.        \n     |  0A |   (Wagenr
  1945. cklauf+Zeilenvorschub)
  1946.        \r     |  0D |   (Wagenr
  1947. cklauf)
  1948.        \t     |  09 |   (horizontaler Tabulator)
  1949.        \v     |  0B |   (vertikaler Tabulator)
  1950.        \ZZZ   |     | ZZZ = 1 bis 3 Oktalziffen, es wird das
  1951.               |     | ASCII-Zeichen mit dem entsprechenden
  1952.               |     | Oktalwert eingesetzt.
  1953.        \xHH   |     | HH = 1 bis n Hexadezimalziffern, es wird
  1954.               |     | das ASCII-Zeichen mit dem entsprechenden
  1955.               |     | Hexadezimalwert modulo 256 eingesetzt.
  1956.  In allen anderen F
  1957. llen wird der Backslash einfach ignoriert, also
  1958.  einfach weggelassen.
  1959. 2 Die Nicknamedatei
  1960. ? Nicknamedatei
  1961.  Bei der Nicknamedatei handelt es sich um eine Konfigurationsdatei f
  1962.  Anreden mit Spitznamen und allem, was rundherum dazugeh
  1963. rt. Die Datei
  1964.  ist 
  1965. hnlich der Filterdatei in verschiedene Bl
  1966. cke unterteilt, die
  1967.  jeweils mit einem Schl
  1968. sselwort eingeleitet werden. Zur deutlicheren
  1969.  Unterscheidung haben die Kommentare in Nicknamedateien einen anderen
  1970.  Aufbau als in den Filterdateien.
  1971.  Die Schl
  1972. sselworte stehen jeweils als einzelne Worte innerhalb einer
  1973.  Zeile. Die maximal erlaubte Zeilenl
  1974. nge liegt bei 16382 Zeichen.
  1975.  Folgende Schl
  1976. sselworte werden derzeit erkannt: @ANREDEN, @GR
  1977.  @NAMEN, @GRUPPEN, @ADRESSDATEI, @SONST, @FOOTER, @ENDE.
  1978.  Beginnt eine Zeile mit einem Klammeraffen, gefolgt von einem
  1979.  Leerzeichen, einem Tabulator oder einem Zeilenumbruch, so handelt es
  1980.  sich um einen Kommentar. Eine Leerzeile, die auch keine Leerzeichen oder
  1981.  Tabulatoren enth
  1982. lt, wird ebenfalls als Kommentar ignoriert. Kommentare
  1983.  sind 
  1984. berall au
  1985. er unmittelbar nach @SONST oder @ADRESSDATEI erlaubt.
  1986.  Innerhalb von Adre
  1987. dateien sind ebenfalls keine Kommentarzeilen
  1988.  erlaubt.
  1989.  Hinweis: Enth
  1990. lt eine Nicknamedatei kein Schl
  1991. sselwort, so wird sie
  1992.  gelesen und f
  1993. r richtig befunden. Ist die angegebene Nicknamedatei (bzw.
  1994.  "nickname.nik") nicht vorhanden, so wird eine Warnung ausgegeben.
  1995. erdem werden Fehler in der Nicknamedatei (au
  1996. er bei "-O 0") immer
  1997.  angemahnt. Sie f
  1998. hren jedoch zu keinem Programmabbruch.
  1999.  IO-Converter liegt eine Beispiel-Nicknamedatei "nickname.nik" bei, mit
  2000.  der die Verwendung demonstriert wird.
  2001. 3 Kommentarzeilen in der Nicknamedatei
  2002. ? Kommentarzeilen
  2003.  Innerhalb der Nicknamedatei sind Kommentarzeilen m
  2004. glich. Zun
  2005. chst wird
  2006.  alles, was vor dem ersten Schl
  2007. sselwort steht, und alles, was nach dem
  2008.  Schl
  2009. sselwort @ENDE steht, als Kommentar betrachtet.
  2010. @autorefoff
  2011. ber hinaus gelten Leerzeilen ohne jeglichen Inhalt, also auch ohne
  2012. @autorefon
  2013.  Leerzeichen oder Tabulatoren, als Kommentarzeilen.
  2014.  Alle Zeilen, die mit einem Klammeraffen ("@"), gefolgt von einem
  2015.  Leerzeichen, Tabulator oder Zeilenumbruch, beginnen, gelten ebenfalls
  2016.  als Kommentarzeilen.
  2017.  Kommentarzeilen sind 
  2018. berall erlaubt, au
  2019. er unmittelbar nach dem
  2020.  Schl
  2021. sselwort @SONST, unmittelbar nach dem Schl
  2022. sselwort @ADRESSDATEI
  2023.  und innerhalb von Adre
  2024. dateien.
  2025. 3 Das Nickname-Schl
  2026. sselwort @ANREDEN
  2027. ? @ANREDEN
  2028.  Die folgenden Zeilen, die als C-String interpretiert werden, definieren
  2029.  Anreden. Jede Zeile definiert genau eine Anrede. Die Anreden haben
  2030.  folgenden Aufbau:
  2031. #\begin{center}
  2032. #              \emph{Stufe} \emph{Anrede}
  2033. #\end{center}
  2034.               @{I}Stufe Anrede@{i}
  2035.  wobei `Stufe` eine Zahl zwischen 0 und 31 ist. Diese Zahl stellt eine
  2036.  Art Gru
  2037. stufe dar. Wozu die Stufen dienen, ist bei @NAMEN, @ADRESSDATEI
  2038.  bzw. @SONST zu sehen.
  2039.  Es ist auch m
  2040. glich, einer Anrede mehrere Stufen zuzuweisen. Es sind
  2041.  einzelne Stufen oder Bereiche (z.B. "2..5" oder "..5" oder "2..")
  2042.  erlaubt. Mehrere Angaben k
  2043. nnen, durch Kommata voneinander getrennt,
  2044.  kombiniert werden (z.B. "2,4..6"). Steht vor der ersten Stufe ein Caret,
  2045.  so bedeutet dies, da
  2046.  die Anrede allen Stufen au
  2047. er den angegeben
  2048.  zugeh
  2049. rt. Die eigentliche Anrede beginnt bei dem ersten Zeichen, das
  2050.  nicht diesem Aufbau gehorcht, oder nach dem ersten Leerzeichen.
  2051.  Die `Anrede` ist die eigentliche Anrede. Innerhalb der `Anrede` sind
  2052.  besondere Ersatzvariablen m
  2053. glich, die dann bei der eigentlichen Anrede
  2054.  entsprechend ersetzt werden:
  2055. @#|l|l|p{.7\textwidth}|
  2056. #\hline
  2057. #Variable & Bedeutung & Ersatz\\\hline
  2058. #\texttt{\$N} & Name      & Nickname oder der kompletter Realname\\\hline
  2059. #\texttt{\$F} & Firstname & Nickname oder der ermittelte Vorname\\\hline
  2060. #\texttt{\$L} & Lastname  & Nickname oder der ermittelte Nachname\\\hline
  2061.              Variable | Bedeutung | Ersatz
  2062.             ----------|-----------|------------------------------
  2063.                 $N    | Name      | Nickname oder der komplette
  2064.                       |           | Realname
  2065.                 $F    | Firstname | Nickname oder der ermittelte
  2066.                       |           | Vorname
  2067.                 $L    | Lastname  | Nickname oder der ermittelte
  2068.                       |           | Nachname
  2069.  Es ist au
  2070. erdem m
  2071. glich, Anreden ohne Stufe zu definieren. Diese werden
  2072.  dann - nach M
  2073. glichkeit - an Stelle der internen Anreden verwendet, wenn
  2074.  kein Name ermittelt werden kann. Bei diesen Anreden ist es somit nicht
  2075. glich und nicht sinnvoll Ersatzvariablen zu verwenden. Anreden ohne
  2076.  Stufe sind nicht gleichbedeutend mit Anreden der Stufe 0!
  2077.  Die maximale Anzahl der definierbaren Anreden ist nur vom freien
  2078.  Speicher abh
  2079. ngig. Die Auswahlgeschwindigkeit sinkt jedoch mit
  2080.  zunehmender Anzahl (linear).
  2081.  Es sind an beliebiger Stelle Kommentarzeilen erlaubt.
  2082. 3 Das Nickname-Schl
  2083. sselwort @GR
  2084. ? @GR
  2085.  Dieses Schl
  2086. sselwort leitet die Schlu
  2087. e (Schlu
  2088. tze) ein. Die
  2089.  Zeilen werden als C-Strings interpretiert. Die Zeilen sind wie bei
  2090.  @ANREDEN aufgebaut, es sind dieselben Ersatzvariablen m
  2091. glich.
  2092.  Wurde eine @ANREDEN-Begr
  2093. ung verwendet, so werden automatisch nur
  2094.  Schlu
  2095. e mit derselben Stufe zuf
  2096. llig ausgew
  2097. hlt. Wurde keine
  2098.  @ANREDEN-Begr
  2099. ung verwendet, so findet die zuf
  2100. llige Auswahl unter den
  2101.  Schlu
  2102. en der @SONST-Stufe statt. Ist kein entsprechender Schlu
  2103.  definiert, so wird auch keiner gesetzt. Es ist also zu empfehlen, zu
  2104.  jeder bei @ANREDEN verwendeten Stufe und zu mindestens einer
  2105.  @SONST-Stufe mindestens einen Schlu
  2106.  zu definieren.
  2107.  Es ist au
  2108. erdem m
  2109. glich, Schlu
  2110. e ohne Stufe zu definieren. Diese
  2111.  werden dann - nach M
  2112. glichkeit - verwendet, wenn kein Name ermittelt
  2113.  werden konnte und auch keine @SONST-Stufe f
  2114. r diesen Fall angegeben ist.
  2115. e ohne Stufe sind nicht gleichbedeutend mit Gr
  2116. en der Stufe 0!
  2117.  Es sind an beliebigen Stellen Kommentarzeilen erlaubt.
  2118. 3 Das Nickname-Schl
  2119. sselwort @NAMEN
  2120. ? @NAMEN
  2121.  Es folgen zeilenweise Namenseintr
  2122. ge, die als C-Strings interpretiert
  2123.  werden. Sie besitzen folgenden Aufbau:
  2124. #\begin{center}
  2125. #\emph{Adresse}\cmd{t}\emph{Bemerkung}\cmd{t}\emph{Realname}\cmd{t}%
  2126. #\emph{Nickname}\cmd{t}\emph{Stufe}\cmd{t}\emph{Footer}
  2127. #\end{center}
  2128.       @{I}Adresse@{i}\t@{I}Bemerkung@{i}\t@{I}Realname@{i}\t@{I}Nickname@{i}\t@{I}Stufe@{i}\t@{I}Footer@{i}
  2129.  wobei statt der Zeichenkette `\t` auch ein echter Tabulator verwendet
  2130.  werden kann.
  2131.  `Adresse` steht f
  2132. r eine Mailadresse. Dieser Eintrag ist zwingend. Beim
  2133.  Vergleich wird nicht zwischen Gro
  2134. - und Kleinbuchstaben unterschieden.
  2135.  Regul
  2136. re Ausdr
  2137. cke sind an dieser Stelle jedoch nicht m
  2138. glich.
  2139.  `Bemerkung` kann frei verwendet werden. Der dort eingesetzte Text wird
  2140.  beim Einlesen der Nicknamedatei ignoriert.
  2141.  `Realname` gibt den tats
  2142. chlichen Namen des zur `Adresse` geh
  2143. renden
  2144.  Empf
  2145. ngers an. Dies ist z.B. bei InterNet-Adressen, bei denen der Name
  2146.  u.U. nicht direkt der Adresse entnommen werden kann, sehr n
  2147. tzlich. Bei
  2148.  der sp
  2149. teren Betrachtung der Realnames wird davon ausgegangen, da
  2150.  alles
  2151.  vor dem letzten Leerzeichen der Vorname und alles danach der Nachname
  2152.  ist (dar
  2153. ber hinaus findet noch eine Erkennung auf Adelstitel statt).
  2154.  Wenn kein `Realname` angegeben ist, wird versucht, einen Namen aus der
  2155.  Adresse zu gewinnen. Bei MAUS- und Fido-Adressen ist das kein Problem.
  2156.  Bei Internet-Adressen ist es jedoch nur in den seltensten F
  2157. llen korrekt
  2158. glich (z.B. X500).
  2159.  `Nickname` steht f
  2160. r einen Spitznamen. Ist er angegeben, so wird er bei
  2161.  den Anreden anstelle aller Ersatzvariablen verwendet. Fehlt er, so wird
  2162.  der `Realname` wichtig.
  2163.  `Stufe` gibt an, welche Stufen der Anreden (und Schlu
  2164. tze) verwendet
  2165.  werden d
  2166. rfen. Es wird zuf
  2167. llig eine Anrede (und ein Schlu
  2168. satz) aus
  2169.  denen der erlaubten Stufen ausgew
  2170. hlt. Es sind entweder einzelne Stufen
  2171.  oder Bereiche (z.B. "2..5" oder "..5" oder "2..") erlaubt. Mehrere
  2172.  Angaben k
  2173. nnen, durch Kommata voneinander getrennt, kombiniert werden
  2174.  (z.B. "2,4..6"). Steht vor der ersten Stufe ein Caret, so bedeutet dies,
  2175.  alle Stufen au
  2176. er den angegeben verwendet werden d
  2177. rfen.
  2178.  `Footer` gibt an, aus welcher Datei der Footer gelesen werden kann. An
  2179.  dieser Stelle darf entweder ein Footer-Alias (siehe @FOOTER) oder direkt
  2180.  der Dateiname (Backslashverdoppelung wegen Interpretation als C-String
  2181.  nicht vergessen!) verwendet werden.
  2182.  Einzelne Felder im Namenseintrag d
  2183. rfen leer sein. Der Namenseintrag
  2184.  endet am Zeilenende.
  2185.  Es darf nur entweder @NAMEN oder @ADRESSDATEI verwendet werden.
  2186.  Es sind an beliebigen Stellen Kommentarzeilen erlaubt.
  2187. 3 Das Nickname-Schl
  2188. sselwort @GRUPPEN
  2189. ? @GRUPPEN
  2190.  Es folgen zeilenweise Gruppeneintr
  2191. ge, die als C-Strings interpretiert
  2192.  werden. Sie besitzen folgenden Aufbau:
  2193. #\begin{center}
  2194. #\emph{Gruppe}\cmd{t}\emph{Stufe}\cmd{t}\emph{Footer}
  2195. #\end{center}
  2196.       @{I}Gruppe@{i}\t@{I}Stufe@{i}\t@{I}Footer@{i}
  2197.  wobei statt der Zeichenkette `\t` auch ein echter Tabulator verwendet
  2198.  werden kann.
  2199.  Es werden damit analog zu @NAMEN und @SONST Voreinstellungen f
  2200.  einzelne Gruppen getroffen. Diese Voreinstellungen gelten immer dann,
  2201.  wenn kein entsprechender Eintrag bei @NAMEN gefunden wurde. F
  2202.  Schlu
  2203. e gilt er au
  2204. erdem auch, wenn kein Name bzw. kein Empf
  2205.  ermittelt werden konnte.
  2206. r Gruppen, f
  2207. r die keine Voreinstellung getroffen wurde oder die
  2208.  Anrede- und Gru
  2209. -Stufe 0 ist, werden die Einstellungen von @SONST
  2210.  verwendet. Die Verwendung einer Pseudogruppe "Pers
  2211. nliche" ist m
  2212. glich.
  2213.  Beim Vergleich der angegebenen Gruppennamen mit dem Gruppennamen aus der
  2214.  Mail wird nicht zwischen Gro
  2215. -/Kleinschreibung unterschieden. Au
  2216. erdem
  2217.  werden alle Zeichen au
  2218. er Buchstaben und Ziffern - entsprechend der
  2219.  aktuellen Maus-Dokumentation - gleich behandelt (CAT, Version 2.63,
  2220.  macht das leider nicht).
  2221.  Die Zeile wird als C-String interpretiert (Backslash-Verdoppelung z.B.
  2222.  bei Dateinamen nicht vergessen!). `Gruppe` ist jedoch kein regul
  2223.  Ausdruck!
  2224. 3 Das Nickname-Schl
  2225. sselwort @ADRESSDATEI
  2226. ? @ADRESSDATEI
  2227.  In der n
  2228. chsten Zeile mu
  2229.  ein Dateiname folgen. Aus dieser Datei werden
  2230.  dann die Namenseintr
  2231. ge gelesen. Dabei werden die Zeilen nicht als
  2232.  C-Strings interpretiert, sondern unver
  2233. ndert 
  2234. bernommen. Das
  2235.  Tabulatorzeichen mu
  2236.  also als solches enthalten sein. Vorteil dieser
  2237.  Methode ist, da
  2238.  direkt die CAT-Adre
  2239. datei verwendet werden kann. Die
  2240.  einzelnen Felder ab `Bemerkung` k
  2241. nnen dort in der Hinweiszeile unter
  2242.  dem Adre
  2243. eintrag angegeben werden. Das Tabulatorzeichen ist im
  2244.  CAT-Dialog mit CTRL-I einzugeben.
  2245.  Es darf nur entweder @NAMEN oder @ADRESSDATEI verwendet werden. Derzeit
  2246.  ist auch nur eine Adre
  2247. datei m
  2248. glich und erlaubt.
  2249.  Die Zeile, die unmittelbar auf die Zeile mit dem Schl
  2250. sselwort
  2251.  @ADRESSDATEI folgt, darf keine Kommentarzeile sein. Sie w
  2252. rde in jedem
  2253.  Fall als Argument (also als Name der Adre
  2254. datei) interpretiert. Danach
  2255. rfen beliebig viele Kommentarzeilen folgen.
  2256. 3 Das Nickname-Schl
  2257. sselwort @SONST
  2258. ? @SONST
  2259.  Es folgt eine Zeile mit dem Aufbau:
  2260. #\begin{center}
  2261. #\emph{Stufe}\cmd{t}\emph{Footer}
  2262. #\end{center}
  2263.       @{I}Stufe@{i}\t@{I}Footer@{i}
  2264.  Diese enth
  2265. lt Voreinstellungen f
  2266. r die Anrede- und Gru
  2267. -Stufe und die
  2268.  Footerdatei. Diese werden immer dann verwendet, wenn ein Name nicht in
  2269.  der Nickname- oder Adre
  2270. datei eingetragen ist, oder im Eintrag keine
  2271.  `Stufe` bzw. kein `Footer` angegeben wurde.
  2272.  Die Zeile, die unmittelbar auf die Zeile mit dem Schl
  2273. sselwort @SONST
  2274.  folgt, darf keine Kommentarzeile sein. Sie w
  2275. rde in jedem Fall als
  2276.  Argument (also als voreingestellte Stufe und Footerdatei) interpretiert.
  2277.  Danach d
  2278. rfen beliebig viele Kommentarzeilen folgen.
  2279.  Die Zeile wird als C-String interpretiert (Backslash-Verdoppelung bei
  2280.  Dateinamen nicht vergessen!).
  2281. 3 Das Nickname-Schl
  2282. sselwort @FOOTER
  2283. ? @FOOTER
  2284.  Es folgen Zeilen mit Alias-Definitionen f
  2285. r Footernamen. Die Zeilen
  2286.  haben folgenden Aufbau:
  2287. #\begin{center}
  2288. #\emph{Alias}\cmd{t}\emph{Dateiname}
  2289. #\end{center}
  2290.       @{I}Alias@{i}\t@{I}Dateiname@{i}
  2291.  Das "\t" steht f
  2292. r einen Tabulator, der entweder genau in dieser Form
  2293.  oder auch als echter Tabulator eingegeben werden kann. Die Zeilen werden
  2294.  als C-Strings interpretiert.
  2295.  Der Alias kann auch entfallen, dann sind Alias und Dateiname identisch.
  2296.  Der Alias kann 
  2297. berall dort verwendet werden, wo normalerweise der Name
  2298.  der Footerdatei stehen m
  2299. 4 Die Footerdatei
  2300. ? Footerdatei
  2301.  Jede Zeile der Footerdatei stellt einen einzelnen Footer dar. Jede Zeile
  2302.  wird einzeln als C-String interpretiert. Durch Verwendung von "\n"
  2303. nnen somit auch mehrzeilige Footer definiert werden.
  2304.  Ein kleines Footerbeispiel ist in dieser Anleitung zu finden.
  2305.  Hinweis: Footer sind im MausNet nicht gern gesehen. Beschr
  2306. nken Sie sich
  2307.  besser auf das Notwendigste. Ich selbst mag Footer, die st
  2308. ndig gleich
  2309.  und/oder riesig gro
  2310.  sind, auch absolut nicht!
  2311.  Kommentare sind in Footerdateien nicht m
  2312. glich. F
  2313. r die Konvertierung
  2314.  der Spr
  2315. chedatei von INTool in eine Footerdatei f
  2316. r IO-Converter liegt
  2317.  das Programm `footconv.ttp` bei.
  2318. 5 Das Programm 'footconv.ttp'
  2319. ? footconv.ttp
  2320. #\par\null\par\noindent
  2321.  Das Programm `footconv.ttp` kann Spr
  2322. chedateien im Format des INTools
  2323.  in Footerdateien f
  2324. r IO-Converter umwandeln und umgekehrt.
  2325. @autorefoff
  2326.  Der Aufruf geschieht mit:
  2327. @autorefon
  2328. #\begin{center}
  2329. #\verb|footconv| IO-Converter \emph{Spr"uchedatei} \emph{Footerdatei}
  2330. #\end{center}
  2331.           footconv IO-Converter @{I}Spr
  2332. chedatei@{i} @{I}Footerdatei@{i}
  2333. r die Umwandlung einer Spr
  2334. chedatei in eine Footerdatei und mit:
  2335. #\begin{center}
  2336. #\verb|footconv| IN-Tool \emph{Footerdatei} \emph{Spr"uchedatei}
  2337. #\end{center}
  2338.           footconv IN-Tool @{I}Footerdatei@{i} @{I}Spr
  2339. chedatei@{i}
  2340. r die Umwandlung einer Footerdatei in eine Spr
  2341. chedatei.
  2342.  Achtung: Wird eine Spr
  2343. chedatei in eine Spr
  2344. chedatei oder eine
  2345.  Footerdatei in eine Footerdatei gewandelt, so wird diese mit gr
  2346.  Wahrscheinlichkeit besch
  2347. digt und kann nicht verlustfrei durch
  2348. ckwandlung wiederhergestellt werden.
  2349. 3 Das Nickname-Schl
  2350. sselwort @ENDE
  2351. ? @ENDE
  2352.  Alles, was nach diesem Schl
  2353. sselwort kommt, wird ignoriert. Das
  2354.  Schl
  2355. sselwort ist jedoch nicht optional, sondern mu
  2356.  vorhanden sein!
  2357.  Ausnahmen sind nur Dateien in denen 
  2358. berhaupt keines der Schl
  2359. sselw
  2360.  vorkommt.
  2361. 2 Beispiele
  2362. ? Beispiele
  2363.  In den folgenden Kapiteln sind zwei Beispiele f
  2364. r Filterdateien und ein
  2365.  Beispiel f
  2366. r eine Nicknamedatei, sowie ein Beispiel f
  2367. r eine Footerdatei
  2368.  angegeben. Die beiden Filterdateien stammen urspr
  2369. nglich von Richard
  2370.  Kampmann, meinem nervendsten - und damit besten - Beta-Tester.
  2371.  "infile.cnf" ist als Filterdatei f
  2372. r Infiles, "outfile.cnf" - wer h
  2373.  das gedacht - als Filterdatei f
  2374. r Outfiles vorgesehen.
  2375.  Da IO-Converter ohnehin nach einer Datei "nickname.nik" sucht, hat die
  2376.  Beispiel-Nicknamedatei hier ebenfalls diesen Namen.
  2377.  Die Footerdatei tr
  2378. gt im Beispiel den Namen "footer.txt".
  2379. 3 Die Beispiel-Nicknamedatei 'nickname.nik'
  2380. ? nickname.nik
  2381.  Hier wird eine Nicknamedatei beispielhaft eingef
  2382. hrt und erl
  2383. utert. Die
  2384.  Zeilen aus der Nicknamedatei sind dabei in einer anderen Schrift
  2385.  hervorgehoben bzw. einger
  2386.   @(#) NickNames-Archiv
  2387.   Alles, was hier vor dem @ANREDEN steht, wird einfach ignoriert.
  2388.  Diese beiden Zeilen werden `Header` genannt. Sie werden beim Einlesen
  2389.  der Nicknamedatei ignoriert.
  2390.   @ Die Anreden
  2391.  Drei Kommentarzeilen
  2392.   @ANREDEN
  2393.  Das Schl
  2394. sselwort @ANREDEN leitet die Anreden ein:
  2395.   00 Sehr geehrte Frau $L!\n
  2396.   01 Sehr geehrter Herr $L!\n
  2397.   02 Hallo $F,\n
  2398.   03 Morg
  2399. n $F,\n
  2400.   02 Hi $F,\n
  2401.   02 Servus $F,\n
  2402.  Bei den Anreden wurde zun
  2403. chst eine zweistellige Stufe-Nummer angegeben.
  2404.  Theoretisch h
  2405. tte dabei die f
  2406. hrende Null entfallen k
  2407. nnen. Sie dient
  2408.  lediglich der 
  2409. bersicht. Das Leerzeichen, das auf die Stufe-Nummer
  2410.  folgt, ist ebenfalls nicht zwingend. Es wird jedoch lediglich das erste
  2411.  Leerzeichen 
  2412. berlesen.
  2413.  Da automatisch noch ein Zeilenende zugef
  2414. gt wird, steht der letzte
  2415.  Zeilenumbruch "\n" jeweils f
  2416. r eine Leerzeile.
  2417.   @GR
  2418.   2..3 Tsch
  2419. ,\nMarkus
  2420.   2,3 Bye,\nMarkus
  2421.   2,3 Ciao,\nMarkus
  2422.   03 Wirsing,\nMarkus
  2423.   ..1 Mit freundlichen Gr
  2424. en\nMarkus Kohm
  2425.  Hierbei handelt es sich um die Schlu
  2426. e. Es ist ebenfalls eine Stufe
  2427.  angegeben. F
  2428. r Anrede und Schlu
  2429.  wird immer dieselbe Stufe
  2430.  verwendet. Damit ist sichergestellt, da
  2431.  Anrede und Schlu
  2432.  immer
  2433.  zusammenpassen. Auf der anderen Seite kann es so notwendig sein, da
  2434.  mehreren Stufen zugewiesen wird (siehe die ersten drei und den
  2435.  letzen Gru
  2436.  Nach dem Schlu
  2437.  soll keine Leerzeile folgen. Das Zeilenende wird
  2438.  automatisch zugef
  2439.   @NAMEN
  2440.   Markus Kohm @ KA2\tIO-Converter-Autor\t\tGro
  2441. er Meister\t1..3
  2442.   Richard Kampmann @ UN\t\t\tGenialer Betatester\t1,2\tBl
  2443.  Es sind zwei Adressen definiert. Da es sich um MausNet-Adressen handelt,
  2444.  kann der Realname entfallen. Er wird beim Einlesen der Datei aus der
  2445.  Adresse gewonnen.
  2446.  Es d
  2447. rfen Anreden und Schlu
  2448. tze der ersten bis dritten bzw. der ersten
  2449.  und zweiten Stufe gew
  2450. hlt werden. Bei Richard Kampmann soll ein Footer
  2451.  aus der Footerdatei mit dem Alias "Bl
  2452. dfug" verwendet werden.
  2453.   @SONST
  2454.   1\tnix
  2455.  Normalerweise d
  2456. rfen nur Anreden der ersten Stufe und Footer aus der
  2457.  Footerdatei mit dem Alias "nix" verwendet werden. Da eine solche Datei
  2458.  nicht existiert, werden normalerweise keine Footer gesetzt.
  2459.   @GRUPPEN
  2460.   TeX\t\tInterNet
  2461.   TeX-D-L\t\tInterNet
  2462.  In den beiden Gruppen "TeX" und "TeX-D-L" soll ein Footer aus der
  2463.  Footerdatei mit dem Alias "InterNet" verwendet werden. Zwischen den
  2464.  beiden "\t" k
  2465. nnte noch eine Stufe f
  2466. r Anreden und Gr
  2467. e angegeben
  2468.  werden. Da nicht angegeben ist, wird die bei @SONST angegebene Stufe
  2469.  verwendet.
  2470.   @FOOTER
  2471. dfug \t\\footer\\bauern.txt
  2472.   InterNet\t\\footer\\internet.txt
  2473. tzlich\t\\footer\\footer.txt
  2474.  Es sind drei Alias f
  2475. r Footerdateien definiert. Der erste verweist auf
  2476.  eine Datei mit Bauernregeln, der zweite auf eine Datei mit Footern f
  2477.  InterNet-Mails, der dritte auf die allgemeine Footerdatei.
  2478.  Alle Footerdateien befinden sich in dem Verzeichnis "footer" der
  2479.  CAT-Partition (es ist jedoch empfehlenswert, die Dateinamen auch noch
  2480.  mit einer Laufwerkskennung zu versehen).
  2481.   @ENDE
  2482.  Dieses Schl
  2483. sselwort markiert das Ende der Nicknamedatei. Der Rest wird
  2484. berhaupt nicht mehr eingelesen:
  2485.   So, das war's.
  2486.   Wenn Fliegen hinter Fliegen fliegen, fliegen Fliegen Fliegen nach.
  2487.  Was IO-Converter mit obiger "nickname.nik" aus einem Infile macht, ist
  2488.  dem Beispiel-Infile aus dem Kapitel 
  2489. ber die Beispiel-Filterdatei
  2490.  "infile.cnf" zu entnehmen.
  2491. 3 Die Beispiel-Filterdatei 'infile.cnf'
  2492. ? infile.cnf
  2493.  Hier wird eine Filterdatei f
  2494. r Infiles beispielhaft eingef
  2495. hrt und
  2496. utert. Die Zeilen aus der Filterdatei sind dabei in einer anderen
  2497.  Schrift hervorgehoben bzw. einger
  2498.  Die Filterdatei stammt urspr
  2499. nglich von Richard Kampmann @ UN, der sich
  2500.  jederzeit f
  2501. r Erg
  2502. nzungen interessiert.
  2503.   # ======================================================
  2504.   # @(#) Filterdatei f
  2505. r IO_CONVERTER II
  2506.   # ======================================================
  2507.   # hier: Filterdatei f
  2508. r das Infile
  2509.  Es handelt sich hier um beide m
  2510. gliche Arten der Kommentare. 
  2511. brigens
  2512.  kann ich nur empfehlen, das what.ttp (z.B. von Julian F. Reschke) auf
  2513.  diese Datei anzuwenden (die @(#)-Zeile wird dabei verwendet).
  2514.   ; -------------------------------------------------------------
  2515.   ; --- Definition der verschiedenen Filter                   ---
  2516.   ; -------------------------------------------------------------
  2517.   FILTER=Umlautlangform
  2518.   ; Au
  2519. erdem sollen alle Paragraphzeichen zu "Par." werden:
  2520. " "Par."
  2521.  Es wurde hier ein Filter zur Wandlung von Umlauten und den beiden
  2522.  Sonderzeichen "
  2523. " und "
  2524. " in eine Langform definiert. Es handelt sich
  2525.  hier um einen freien Filter, bei dem nur die einfache Stringersetzung
  2526.  Verwendung findet.
  2527.   ; -------------------------------------------------------------
  2528.   FILTER=TeX-Umlautlangform
  2529. " "Par."
  2530.  Das selbe wie bei `Umlautlangform` mit Umlaut- und Sonderzeichenformen,
  2531.  wie sie z.B. f
  2532. r LaTeX 
  2533. blich sind.
  2534.   ; -------------------------------------------------------------
  2535.   ; --- Jetzt Aufruf der verschiedenen Konvertierungen        ---
  2536.   ; -------------------------------------------------------------
  2537.   PERSON=.*@.....+
  2538.   !Umlautlangform
  2539. r alle Empf
  2540. nger, bei denen nach dem Klammeraffern ("AT") mehr als
  2541.  vier (mindestens 5) Zeichen folgen, soll in die Umlautlangform gewandelt
  2542.  werden. Dazu wird f
  2543. r diese User der freie Filter `Umlautlangform`
  2544.  aktiviert.
  2545.  Der verwendete regul
  2546. re Ausdruck bedeutet im einzelnen: beliebige
  2547.  Zeichen in beliebiger Anzahl (".*") gefolgt von einem Klammeraffen ("@")
  2548.  gefolgt von vier beliebigen Zeichen ("....") gefolgt von mindestens einem
  2549.  weiteren, beliebigen Zeichen (".+").
  2550.   GRUPPE=.*\\.de
  2551.   !Umlautlangform
  2552. r alle Gruppen, deren Namen aus beliebig vielen Zeichen, gefolgt von
  2553.  ".de", bestehen, soll ebenfalls der freie Filter `Umlautlangform`
  2554.  aktiviert werden.
  2555.  Vielleicht fragen Sie sich jetzt, warum der Backslash doppelt verwendet
  2556.  wird. Die Antwort ist sehr einfach. Das Argument ".*\\.de" wird zun
  2557.  als C-String interpretiert. Das Ergebnis ist dann zun
  2558. chst ".*\.de".
  2559.  Dieses wird nun als regul
  2560. rer Ausdruck interpretiert. Dabei mu
  2561.  Punkt von ".de" gequotet werden, weil der nichtgequotete Punkt f
  2562. r jedes
  2563.  beliebige Zeichen steht.
  2564.   GRUPPE=TEX-D-L
  2565.   !TeX-Umlautlangform
  2566.  Da es sich bei der Gruppe TEX-D-L um eine Mailingliste aus dem InterNet
  2567.  handelt, funktioniert die - in diesem Fall besonders wichtige -
  2568.  Umlautwandlung nicht immer. Au
  2569. erdem haben sich in jener Gruppe Umlaute
  2570.  nach TeX-Konvention eingeb
  2571. rgert. Deshalb aktivieren wir f
  2572. r diese
  2573.  Gruppe die entsprechende Wandlung.
  2574.   GRUPPE=TEX
  2575.   !TeX-Umlautlangform
  2576.  siehe Gruppenfilter `TEX-D-L`.
  2577.   ; Jetzt kommt 
  2578. berfl
  2579. ssiger Quatsch
  2580.   ZEILE=:TeX Hallo.*
  2581.   :TeX Hallo=Hallo
  2582.   !TeX-Umlautlangform
  2583.  Da es in Kommentaren (au
  2584. ber den Infoblock) keine eindeutige
  2585.  Gruppen- bzw. Empf
  2586. ngerzuordnung gibt (zumindest bis CAT 2.63), wird
  2587.  hier die TeX-Umlautlangform auch noch explizit 
  2588. ber eine Infile-Zeile,
  2589.  die mit ":TeX Hallo" beginnt, aktiviert. Das "TeX Hallo" aus der
  2590.  Textzeile wird au
  2591. erdem 
  2592. ber die einfache Stringersetzung in "Hallo"
  2593.  gewandelt.
  2594.  An dieser Stelle m
  2595. chte ich nocheinmal darauf hinweisen, da
  2596.  Zeile-Filter nicht Mail-Text-Zeilen sondern komplette Zeilen aus dem
  2597.  fertigen Infile betrachtet. Die Zeilenkennung wird also in jedem Fall
  2598.  mitber
  2599. cksichtigt. Deshalb steht hier am Anfang des Arguments
  2600.  ":TeX Hallo.*" der Doppelpunkt, der in Infiles am Anfang jeder Textzeile
  2601.  steht.
  2602.  Dieser Zeile-Filter ist hier nur aus Demonstrationsgr
  2603. nden zu finden.
  2604.  Die Aktivierung des freien Filters `TeX-Umlautlangform`, kann wesentlich
  2605.  einfacher mit Hilfe des Infoblocks und des Gruppenfilters `TEX`
  2606.  erfolgen.
  2607.   ALLE
  2608.   -Anrede=hallo
  2609.   -Anrede=hi
  2610.   -Controlfilter=true
  2611.   -Filterschutz=an
  2612.   -Gru
  2613. =true
  2614. r alle Mails soll die automatische Anrede eingeschaltet werden. Im
  2615.  Regelfall wird f
  2616. r die eigentliche Anrede wohl die Nicknamedatei
  2617.  verwendet werden. Es mu
  2618.  jedoch mindestens eine der festeingebauten
  2619.  Anreden aktiviert werden, wenn 
  2620. berhaupt automatische Anreden verwendet
  2621.  werden sollen. Eine dieser aktivierten, festeingebauten Anreden wird
  2622.  dann in dem Fall verwendet, da
  2623.  kein Empf
  2624. ngername auszumachen ist.
  2625.  (Oh, welch ein Absatz!)
  2626.   PERSON=.*
  2627.   -Footer=ja
  2628.  In allen PMs sollen Footer erlaubt sein.
  2629.  Was nun IO-Converter mit Hilfe dieser Filterdatei aus einem Infile
  2630.  macht, ist dem Kapitel mit einem Beispiel-Infile zu entnehmen.
  2631. 3 Die Beispiel-Footerdatei 'footer.txt'
  2632. ? footer.txt
  2633.  Hier wird eine Footerdatei beispielhaft eingef
  2634. hrt und erl
  2635. utert. Die
  2636.  Zeilen aus der Footerdatei sind dabei in einer anderen Schrift
  2637.  hervorgehoben bzw. einger
  2638.   Dieser Footer wurde mit IO-Converter gesetzt.
  2639.   IO-Converter-Beispiel f
  2640. r\nzweizeilige Footer.
  2641.  Die erste Zeile definiert einen sehr einfachen einzeiligen Footer. Die
  2642.  zweite Zeile definiert einen ebenso einfachen aber zweizeiligen Footer.
  2643.  Die zweite Footer-Zeile beginnt hinter dem "\n".
  2644.  Der Zeilenumbruch am Ende eines Footers wird automatisch eingef
  2645. 4 Was IO-Converter aus dem Beispiel-Infile macht
  2646. ? Beispiel-Infile
  2647.  Wir gehen hier davon aus, da
  2648.  IO-Converter mit:
  2649.        io_conv.ttp -f infile.cnf -n nickname.nik infile.txt
  2650.  aufgerufen wird. Bei "infile.cnf" und "nickname.nik" handelt es sich
  2651.  dabei um die Dateien aus den vorherigen Kapiteln, die im aktuellen
  2652.  Verzeichnis (das ist normalerweise das Verzeichnis von io_conv.ttp)
  2653.  stehen m
  2654. ssen. Da "nickname.nik" gleichzeitig der voreingestellte
  2655.  Nicknamedatei-Name ist, k
  2656. nnte der Aufruf auch:
  2657.        io_conv.ttp -f infile.cnf infile.txt
  2658.  lauten (beim Aufruf als CAT-I/O-Filter entsprechend).
  2659.  Die Zeilen aus dem Infile sind dabei in einer anderen Schrift
  2660.  hervorgehoben bzw. einger
  2661.   #HEAD
  2662.   :Dies ist ein Infile-Beispiel, das niemals als Outfile in CAT
  2663.   :eingelesen werden sollte.
  2664.   :CAT bis Version 2.63 weigert sich gl
  2665. cklicherweise auch dagegen.
  2666.  Falls es jemanden interessiert: Der Trick liegt darin, da
  2667.  kein
  2668.  LOG-Block vorhanden ist.
  2669.  "#HEAD" kommt nat
  2670. rlich normalerweise in einem Infile nicht vor.
  2671.   #ID0815
  2672.  Dies ist tats
  2673. chlich eine g
  2674. ltige ID. Die Maus-Doku schreibt nicht vor,
  2675.  die ID einer PM mit einem "P" und die ID einer AM mit einem "A"
  2676.  beginnt. Sie schreibt auch nicht vor, da
  2677.  die ID ein "AT" (Klammeraffen)
  2678.  gefolgt vom Mausk
  2679. rzel des Absenders enth
  2680.   ARichard Kampmann @ UN
  2681. ber die "A"-Zeile wird der Empf
  2682. nger angegeben. Damit ist eindeutig
  2683.  ausgesagt, da
  2684.  es sich um eine PM handelt.
  2685.   WDemonstration von IO-Converter
  2686.  Die "W"-Zeile definiert den Betreff (das sogenannte Subject). Auf diese
  2687.  Zeile w
  2688. rde ein eventueller RE- oder LALL-Filter wirken.
  2689.   E199506070000
  2690.  Datum und Uhrzeit im Maus-Format.
  2691.   :Dies war einmal die erste Textzeile der Mail.
  2692. brigens werden hier Anrede, Schlu
  2693.  und Footer automatisch gesetzt.
  2694.   :---
  2695.  Das war jetzt der eigentliche Text. F
  2696. r die Maus ist jede Zeile ein
  2697.  Absatz!
  2698.   #ID0816
  2699.   GTEX
  2700.  Die "G"-Zeile gibt die Zielgruppe an. Es handelt sich damit eindeutig um
  2701.  eine AM.
  2702.   WDemonstration von IO-Converter
  2703.   E199506070000
  2704.   :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
  2705.   :Welche Auswirkungen das auf '
  2706. ' und '
  2707. ' hat, kann man
  2708.   :hier sehen.
  2709.   :Anrede und Schlu
  2710.  werden automatisch gesetzt.
  2711.   #ID0817
  2712.   GTEX
  2713.   WDemonstration von IO-Converter
  2714.   E199506070000
  2715.   :* Name: Richard Kampmann @ UN
  2716.  Es handelt sich hier um eine Gruppenmail, bei der die Empf
  2717. ngeradresse
  2718. r die Anrede explizit angegeben ist. Die `einzelne` Leerzeile geh
  2719.  zum Infoblock und wird ebenfalls gel
  2720. scht. Hier wurde als Argument der
  2721.  "* Name: "-Zeile die Mailadresse verwendet. Weiter unten wird statt
  2722.  dessen der Realname direkt eingesetzt.
  2723.   :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
  2724.   :Welche Auswirkungen das auf '
  2725. ' und '
  2726. ' hat, kann man
  2727.   :hier sehen.
  2728.   :Anrede und Schlu
  2729.  werden automatisch gesetzt, wobei der
  2730.   :Infoblock Verwendung findet.
  2731.   #ID0818
  2732.   -ID0816
  2733.  Es handelt sich hier um einen Kommentar zu einer andere Mail. Es sind
  2734.  weder Empf
  2735. nger noch Zielgruppe angegeben (CAT bis Version 2.63 tut das
  2736.  einfach nicht, obwohl es inzwischen erlaubt ist). Daher kann zun
  2737.  nicht festgestellt werden, ob es sich um eine AM oder PM handelt.
  2738.   WDemonstration von IO-Converter
  2739.   E199506070000
  2740.   :* Gruppe: TEX
  2741. ber den Infoblock wurde nun bestimmt, da
  2742.  die Mail wie eine AM der
  2743.  Gruppe "TEX" behandelt werden soll.
  2744.   :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
  2745.   :TeX zugeordnet werden.
  2746.   :Welche Auswirkungen das auf '
  2747. ' und '
  2748. ' hat, kann man
  2749.   :hier sehen.
  2750.   :Anrede und Schlu
  2751.  werden automatisch gesetzt.
  2752.   #ID0819
  2753.   -ID0816
  2754.   WDemonstration von IO-Converter
  2755.   E199506070000
  2756.   :* Gruppe: TEX
  2757.   :* Name: Richard Kampmann
  2758.  Hier wurde zus
  2759. tzlich bestimmt, da
  2760.  es zwar eine AM der Gruppe "TEX"
  2761.  sein soll, die Anrede (und nat
  2762. rlich auch Schlu
  2763.  und Footer) ist
  2764.  aber entsprechend dem Empf
  2765. nger "Richard Kampmann" zu setzen. Ob
  2766.  Anrede, Gru
  2767.  und Footer gesetzt werden, h
  2768. ngt jedoch von den Filtern f
  2769.  die Gruppe "TEX" ab. Das h
  2770. rt sich jetzt komplizierter an, als es ist.
  2771.   :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
  2772.   :TeX zugeordnet werden.
  2773.   :Welche Auswirkungen das auf '
  2774. ' und '
  2775. ' hat, kann man
  2776.   :hier sehen.
  2777.   :Anrede und Schlu
  2778.  werden automatisch gesetzt, wobei der
  2779.   :Infoblock Verwendung findet.
  2780.   :---
  2781.   #ID0820
  2782.   AMarkus_Kohm@ka2.maus.de
  2783.  Hier noch ein Beispiel einer Mail, die eine InterNet-Adresse besitzt. In
  2784.  Wirklichkeit ist das zwar ein Empf
  2785. nger in einer Maus, die Adressierung
  2786.  erfolgt aber via InterNet.
  2787.   WDemonstration von IO-Converter
  2788.   E199506070000
  2789.   :Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet
  2790.   :erfahren.
  2791.   :Welche Auswirkungen das auf '
  2792. ' hat, kann man hier sehen.
  2793.   :Es gibt aber auch die M
  2794. glichkeit, seine Umlaute zu verdeutlichen.
  2795. brigens sehen meine Originalumlaute hier so aus:
  2796.   :$begin
  2797.  und das Sonderzeichen: 
  2798.   :$end
  2799.   :Anrede und Schlu
  2800.  werden automatisch gesetzt. Mal sehen, ob
  2801.   :es auch einen Footer gibt.
  2802.   :---
  2803.  Schauen wir uns jetzt an, was IO-Converter daraus macht. Zun
  2804. chst einmal
  2805.  die Ausgaben von IO-Converter:
  2806.   IO-Converter Version 2.1, Copyright (c) Markus Kohm, Jun  6 1995
  2807.   Warnung: Anrede mit unbekanntem Namen! Msg-ID=ID0816
  2808.   Warnung: Anrede mit unbekanntem Namen! Msg-ID=ID0818
  2809.  Mit diesen Warnungen wird darauf hingewiesen, da
  2810.  bei den Mails
  2811.  "#ID0816" und "#ID0818" keine Namen f
  2812. r die Anrede ermittelt werden
  2813.  konnten. Es wurde daher auf die Alternativen ohne Name ausgewichen.
  2814.  Und wie sieht das Infile nach der Wandlung nun aus:
  2815.   #HEAD
  2816.   :Dies ist ein Infile-Beispiel, das niemals als Outfile in CAT
  2817.   :eingelesen werden sollte.
  2818.   :CAT bis Version 2.63 weigert sich gl
  2819. cklicherweise auch dagegen.
  2820.   #ID0815
  2821.   ARichard Kampmann @ UN
  2822.   WDemonstration von IO-Converter
  2823.   E199506070000
  2824.   :Servus Genialer Betatester,
  2825.  Die Anrede wurde zuf
  2826. llig aus den m
  2827. glichen ausgew
  2828.   :Dies war einmal die erste Textzeile der Mail.
  2829. brigens werden hier Anrede, Schlu
  2830.  und Footer automatisch gesetzt.
  2831.   :Tsch
  2832.   :Markus
  2833.  Der Schlu
  2834.  wurde zuf
  2835. llig aus den m
  2836. glichen ausgew
  2837.   :---
  2838.   :Fri
  2839. t die Kuh am Liebsten Klee,
  2840.   :Tut's dem Bauern im Geldbeutel weh.
  2841.  Der zweizeilige Footer entstammt der Datei mit den dummen Spr
  2842. chen und
  2843.  wurde ebenfalls zuf
  2844. llig ausgew
  2845.   #ID0816
  2846.   GTEX
  2847.   WDemonstration von IO-Converter
  2848.   E199506070000
  2849.   :Hallo,
  2850.  Hier haben wir eine der Mails, f
  2851. r die kein Empf
  2852. nger gefunden werden
  2853.  konnte, weshalb eine namenlose (interne) Anrede verwendet wurde.
  2854.   :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
  2855.   :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
  2856.   :hier sehen.
  2857.   :Anrede und Schlu"sgru"s werden automatisch gesetzt.
  2858.   :Mit freundlichen Gr"u"sen
  2859.   :Markus Kohm
  2860.  Wir erinnern uns, da
  2861.  in der Gruppe "TEX" aufgrund der Nicknamedatei nur
  2862. e der voreingestellten Stufe 1 verwendet werden d
  2863. rfen. Das ist
  2864.  genau dieser eine Gru
  2865.   #ID0817
  2866.   GTEX
  2867.   WDemonstration von IO-Converter
  2868.   E199506070000
  2869.   :Hi Genialer Betatester,
  2870.   :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
  2871.   :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
  2872.   :hier sehen.
  2873.   :Anrede und Schlu"sgru"s werden automatisch gesetzt, wobei der
  2874.   :Infoblock Verwendung findet.
  2875.   :Tsch"u"s,
  2876.   :Markus
  2877.  Hier wurde nicht der Gru
  2878.  der Stufe 1 verwendet, obwohl es sich um
  2879.  dieselbe Gruppe handelt. Durch Angabe eines Namens wurden jedoch die
  2880. r diesen Namen aktiviert.
  2881.   #ID0818
  2882.   -ID0816
  2883.   WDemonstration von IO-Converter
  2884.   E199506070000
  2885.   :Hi,
  2886.   :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
  2887.   :TeX zugeordnet werden.
  2888.   :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
  2889.   :hier sehen.
  2890.   :Anrede und Schlu"sgru"s werden automatisch gesetzt.
  2891.   :Mit freundlichen Gr"u"sen
  2892.   :Markus Kohm
  2893.  Das war die zweite Mail, f
  2894. r die kein Empf
  2895. nger festgestellt werden
  2896.  konnte. Da jedoch die Gruppe im Infoblock angegeben war, konnten die
  2897.  entsprechenden Filter und die Gru
  2898. einschr
  2899. nkungen verwendet werden.
  2900.   #ID0819
  2901.   -ID0816
  2902.   WDemonstration von IO-Converter
  2903.   E199506070000
  2904.   :Hallo Genialer Betatester,
  2905.   :Diese Mail kann mit Hilfe des Info-Blocks eindeutig der Gruppe
  2906.   :TeX zugeordnet werden.
  2907.   :Welche Auswirkungen das auf '"a"o"u"A"O"U', '"s' und 'Par.' hat, kann man
  2908.   :hier sehen.
  2909.   :Anrede und Schlu"sgru"s werden automatisch gesetzt, wobei der
  2910.   :Infoblock Verwendung findet.
  2911.   :Tsch"u"s,
  2912.   :Markus
  2913.   :---
  2914.  Es wurde kein Footer gesetzt, weil es sich laut Infoblock um eine AM
  2915.  handelt. Die Angabe eines Namens im Infoblock gen
  2916. gt nicht, um den
  2917.  Filter zu aktivieren, der Footer einschaltet. Statt dessen m
  2918. te ein
  2919.  Empf
  2920. nger definiert werden ("An" statt "Name").
  2921.   #ID0820
  2922.   AMarkus_Kohm@ka2.maus.de
  2923.   WDemonstration von IO-Converter
  2924.   E199506070000
  2925.   :Sehr geehrter Herr Kohm!
  2926.   :Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet
  2927.   :erfahren.
  2928.   :Welche Auswirkungen das auf 'aeoeueAeOeUe' hat, kann man hier sehen.
  2929.   :Es gibt aber auch die Moeglichkeit, seine Umlaute zu verdeutlichen.
  2930.   :Uebrigens sehen meine Originalumlaute hier so aus:
  2931.  und das Sonderzeichen: 
  2932.  Die Markierungen "$begin" und "$end" f
  2933. r den zu sch
  2934. tzenden Block wurden
  2935.  wie gew
  2936. nscht entfernt. Die Zeile dazwischen wurde eindeutig nicht
  2937.  konvertiert.
  2938.   :Anrede und Schlussgruss werden automatisch gesetzt. Mal sehen, ob
  2939.   :es auch einen Footer gibt.
  2940.   :Mit freundlichen Gruessen
  2941.   :Markus Kohm
  2942.   :---
  2943.  Auch diese Mail wird nicht mit einem Footer versehen, weil die
  2944.  Standard-Footerdatei mit dem Alias "nix" nicht existiert (und auch keine
  2945.  Datei mit dem Namen "nix"), also auch kein Footer daraus gelesen werden
  2946.  kann.
  2947.  Das war's. Diese Beispiele k
  2948. nnen nat
  2949. rlich nur einige Grundf
  2950. higkeiten
  2951.  von IO-Converter demonstrieren. F
  2952. r die Demonstration aller
  2953. glichkeiten br
  2954. uchte man ein Infile von einigen 10 KByte Gr
  2955. 3 Die Beispiel-Filterdatei 'outfile.cnf'
  2956. ? outfile.cnf
  2957.  Hier wird eine Filterdatei f
  2958. r Outfiles beispielhaft eingef
  2959. hrt und
  2960. utert. Die Zeilen aus der Filterdatei sind dabei in einer anderen
  2961.  Schrift hervorgehoben bzw. einger
  2962.  Die Filterdatei stammt urspr
  2963. nglich von Richard Kampmann @ UN, der sich
  2964.  jederzeit f
  2965. r Erg
  2966. nzungen interessiert.
  2967.   # ======================================================
  2968.   # @(#) Filterdatei f
  2969. r IO_CONVERTER II
  2970.   # ======================================================
  2971.   # hier: Filterdatei f
  2972. r das Outfile
  2973.  Es handelt sich hier um die erste Art der m
  2974. glichen Kommentare. Wie hier
  2975.  zu sehen ist, sind auch Leerzeilen erlaubt.
  2976.   ; -------------------------------------------------------------
  2977.   ; ---          Definition der verschiedenen Filter          ---
  2978.   ; -------------------------------------------------------------
  2979.   ######## Generelle Wandlung f
  2980. r alle Mails ####################
  2981.   FILTER=General
  2982.   -RE-Filter=on
  2983.   -Controlfilter=on
  2984.   -Leermailfilter=on
  2985.   -Filterschutz=on
  2986.  Dieser freie Filter wird sp
  2987. ter f
  2988. r alle Mails aktiviert. Er sorgt
  2989. r, da
  2990.  alle Formen von "RE" im Betreff entfernt werden,
  2991.  Steuerzeichen aus dem Mails gel
  2992. scht werden (weil CAT bis 2.63 sonst
  2993. glicherweise mit Bomben um sich wirft), leere Mails eine Textzeile
  2994.  bekommen (weil CAT zumindest bis Version 2.63 sonst Probleme mit dem
  2995.  Einsortieren bekommt), bestimmte Mailteile wie UUE-codierte Zeilen nach
  2996. glichkeit erkannt und vor Filterung gesch
  2997. tzt werden und da
  2998.  falsche Akzent "
  2999. " in ein Hochkomma gewandelt wird.
  3000.   ######## in TeX-Gruppen TeX-Umlaute zur
  3001. ckwandeln #############
  3002.   FILTER=TeX-Umlautr
  3003. ckwandelung
  3004.   :"a=
  3005.   :"o=
  3006.   :"u=
  3007.   :"s=
  3008.   :"A=
  3009.   :"O=
  3010.   :"U=
  3011.   :\\"a=
  3012.   :\\"o=
  3013.   :\\"u=
  3014.   :\\"s=
  3015.   :\\"A=
  3016.   :\\"O=
  3017.   :\\"U=
  3018.   :\\S=
  3019.   ;Achtung! Bei der ersten Art zu wandeln k
  3020. nnen Umlaute und Anf
  3021. hrungs-
  3022.   ;striche gefolgt von einem Buchstaben nicht unterschieden werden! Wenn
  3023.   ;das jemanden st
  3024. rt, mu
  3025.  er den ersten Block l
  3026. schen. L
  3027. sungen f
  3028. r das
  3029.   ;Problem werden jederzeit gerne entgegengenommen ...
  3030.  Hier hat Richard eigenlich schon ausreichend kommentiert ...
  3031.   ######## Durch das Gate nach MIME zerhackte Mails reparieren ##
  3032.   ; Achtung - dieser Filter ist nur duch Ausprobieren ermittelt!
  3033.   FILTER=MIME-Conversion
  3034.  Die MIME-Conversion ist im InterNet relativ weit verbreitet. Sie
  3035. glicht u.a. die 7Bit-Codierung von Zeichen mit einem 8Bit-Code.
  3036.   "=E4" "
  3037.   "=F6" "
  3038.   "=FC" "
  3039.   "=C4" "
  3040.   "=D6" "
  3041.   "=DC" "
  3042.   "=DF" "
  3043.   "=9E" "
  3044.   ; ... und nun noch "exotische":
  3045.   ; "weicher" Zeilenumbruch:
  3046.   "=\n" ""
  3047.  Hier wird mit der erweiterten String-Ersetzung ein Gleichheitszeichen,
  3048.  das am Zeilenende steht, samt dem Zeilenumbruch entfernt. Es soll nicht
  3049.  verschwiegen werden, da
  3050.  dies zu einer Warnung f
  3051. hren kann, wenn ein
  3052.  Gleichheitzeichen am Zeilenende vor einen zusch
  3053. tzenden Block oder am
  3054.  Mailende steht. Da dieser Fehler abgefangen wird, kommt es jedoch zu
  3055.  keinen Fehlfunktionen.
  3056.   ; Punkt am Zeilenanfang:
  3057.   "=2E" "."
  3058.   ; Punkt als 'Item'-Kennzeichen bei Aufz
  3059. hlungen
  3060.   "=F9" "
  3061.   ; codiertes Gleichheitszeichen (kein Witz!)...
  3062.   "=3D" "="
  3063.   ; ... to be continued ...
  3064.   ; Erg
  3065. nzungen und Korrekturen bitte an den Autor melden, damit
  3066.   ; der Filter in k
  3067. nftigen Versionen erg
  3068. nzt werden kann!
  3069.  Die MIME-Conversion fordert h
  3070. chste Leistung von IO-Converter und war
  3071.  ein Grund f
  3072. r die neue Version.
  3073.   ###############################################################
  3074.   ; -------------------------------------------------------------
  3075.   ; ---       Aufruf der verschiedenen Konvertierungen        ---
  3076.   ; -------------------------------------------------------------
  3077.   ALLE
  3078.   !General
  3079.  Wie versprochen die Aktivierung des freien Filters `General`.
  3080.   PERSON=.*@.....+
  3081.   !MIME-Conversion
  3082.  Die MIME-Conversion ist in erster Linie f
  3083. r InterNet-Absender
  3084.  interessant. Also wird sie wieder f
  3085. r Absender aktiviert, bei denen nach
  3086.  dem Klammeraffen (AT) mindestens 5 Zeichen folgen.
  3087.   GRUPPE=TEX-D-L
  3088.   !TeX-Umlautr
  3089. ckwandelung
  3090.   GRUPPE=TEX
  3091.   !TeX-Umlautr
  3092. ckwandelung
  3093.  Die TeX-Umlautr
  3094. ckwandlung wird nur in den Gruppen TEX-D-L und TEX
  3095. tigt.
  3096.   ###############################################################
  3097.  Das war's.
  3098.  Was nun IO-Converter mit Hilfe dieser Filterdatei aus einem Outfile
  3099.  macht, ist dem folgenden Kapitel mit einem Beispiel-Outfile zu entnehmen.
  3100. 4 Was IO-Converter aus dem Beispiel-Outfile macht
  3101. ? Beispiel-Outfile
  3102.  Wir gehen hier davon aus, da
  3103.  IO-Converter mit:
  3104.        io_conv.ttp -f outfile.cnf -n nickname.nik outfile.txt
  3105.  aufgerufen wird. Bei "outfile.cnf" und "nickname.nik" handelt es sich
  3106.  dabei um die Dateien aus den vorherigen Kapiteln, die im aktuellen
  3107.  Verzeichnis (das ist normalerweise das Verzeichnis von io_conv.ttp)
  3108.  stehen m
  3109. ssen. Da "nickname.nik" gleichzeitig der voreingestellte
  3110.  Nicknamedatei-Name ist, k
  3111. nnte der Aufruf auch:
  3112.        io_conv.ttp -f outfile.cnf outfile.txt
  3113.  lauten (beim Aufruf als CAT-I/O-Filter entsprechend). Die Nicknamedatei
  3114.  wird hier lediglich geladen, damit IO-Converter sich nicht 
  3115. ber das
  3116.  Fehlen selbiger beschwert. Im Grunde k
  3117. nnte man aber gut auf sie
  3118.  verzichten. In diesem Fall k
  3119. nnte man dann z.B. mit `-n no` eine nicht
  3120.  existierende Nicknamedatei angeben (und daf
  3121. r eine entsprechende Warnung
  3122.  ernten). Es w
  3123. re ebenfalls denkbar, eine leere Nicknamedatei anzugeben.
  3124.  Diese w
  3125. rde nahezu ohne Zeitverz
  3126. gerung "gelesen" (und eine Warnung
  3127. rde ebenfalls nicht ausgegeben werden). Eine nahezu leere Datei kann
  3128.  man z.B. mit CAT erzeugen, indem man eine nicht vorhandene Datei 
  3129. ffnet,
  3130.  die Leertaste und anschlie
  3131. end die Backspace-Taste dr
  3132. ckt und die Datei
  3133.  schlie
  3134.  Als Outfile wird hier das im Infile-Beispiel erzeugte Infile verwendet,
  3135.  das zus
  3136. tzlich um die folgende Mail erweitert wurde (au
  3137. erdem sind
  3138.  selbstverst
  3139. ndlich "V"-Zeilen sowie bei den Kommentaren auch "A"- bzw.
  3140.  "G"-Zeilen enthalten, die die Maus automatisch setzt.). Die Zeilen aus
  3141.  dem Outfile sind wieder durch eine gesonderte Schrift hervorgehoben bzw.
  3142.  einger
  3143.   #ID0821
  3144.   AMarkus Kohm @ KA2
  3145.   VMarkus_Kohm@ka2.maus.de
  3146.   WRe^2:Demonstration von IO-Converter
  3147.   E199506070000
  3148.   :Hallo Markus,
  3149.   :Diese Mail demonstriert, wie der=
  3150.   : MIME-Filter im allgemeinen so f=
  3151.   :unktioniert.
  3152.   :Es ist sicher interessant, das e=
  3153.   :inmal im Detail zu sehen.
  3154.   :R=E4te, R=FCbe, R=F6llchen, =C4p=
  3155.   :fel, =D6se, =DCbel, Na=DF.
  3156.   :Na wie war
  3157.   :Gru=DF
  3158.   :     Markus.
  3159.  Schauen wir uns zun
  3160. chst die Ausgabe an von IO-Converter an:
  3161.   IO-Converter Version 2.1, Copyright (c) Markus Kohm, Jun  6 1995
  3162.  Es wurde offenbar kein Fehler gefunden. Also wenden wir uns dem
  3163.  erzeugten Outfile zu:
  3164.   #HEAD
  3165.   :Dies ist ein Outfile-Beispiel, das niemals als Outfile in CAT
  3166.   :eingelesen werden sollte.
  3167.   :CAT bis Version 2.63 weigert sich gl
  3168. cklicherweise auch dagegen.
  3169.   #ID0815
  3170.   ARichard Kampmann @ UN
  3171.   VMarkus Kohm @ KA2
  3172.   WDemonstration von IO-Converter
  3173.   E199506070000
  3174.   :Servus Genialer Betatester,
  3175.   :Dies war einmal die erste Textzeile der Mail.
  3176. brigens werden hier Anrede, Schlu
  3177.  und Footer automatisch gesetzt.
  3178.   :Tsch
  3179.   :Markus
  3180.   :---
  3181.   :Fri
  3182. t die Kuh am Liebsten Klee,
  3183.   :Tut's dem Bauern im Geldbeutel weh.
  3184.  Diese erste Mail kam wie gew
  3185. nscht ohne weitere 
  3186. nderung an.
  3187.   #ID0816
  3188.   GTEX
  3189.   VMarkus Kohm @ KA2
  3190.   WDemonstration von IO-Converter
  3191.   E199506070000
  3192.   :Hallo,
  3193.   :Diese Mail kann eindeutig der Gruppe TeX zugeordnet werden.
  3194.   :Welche Auswirkungen das auf '
  3195. ' und 'Par.' hat, kann man
  3196.   :hier sehen.
  3197.   :Anrede und Schlu
  3198.  werden automatisch gesetzt.
  3199.   :Mit freundlichen Gr
  3200.   :Markus Kohm
  3201.  Es ist gelungen, die TeX-Umlaute wieder in normale Umlaute
  3202. ckzuwandeln. Selbiges gilt f
  3203. r die Mails ID0817, ID0818 und ID0819,
  3204.  weshalb ich diese hier aus dem Beispiel entfernt habe.
  3205.   #ID0820
  3206.   AMarkus_Kohm@ka2.maus.de
  3207.   VMarkus Kohm @ KA2
  3208.   WDemonstration von IO-Converter
  3209.   E199506070000
  3210.   :Sehr geehrter Herr Kohm!
  3211.   :Diese Mail demonstriert nun die Wandlung, die Mails ins InterNet
  3212.   :erfahren.
  3213.   :Welche Auswirkungen das auf 'aeoeueAeOeUe' hat, kann man hier sehen.
  3214.   :Es gibt aber auch die Moeglichkeit, seine Umlaute zu verdeutlichen.
  3215.   :Uebrigens sehen meine Originalumlaute hier so aus:
  3216.  und das Sonderzeichen: 
  3217.   :Anrede und Schlussgruss werden automatisch gesetzt. Mal sehen, ob
  3218.   :es auch einen Footer gibt.
  3219.   :Mit freundlichen Gruessen
  3220.   :Markus Kohm
  3221.   :---
  3222.  In der InterNet-Mail wurde nichts weiter ver
  3223. ndert.
  3224.   #ID0821
  3225.   AMarkus Kohm @ KA2
  3226.   VMarkus_Kohm@ka2.maus.de
  3227.   WDemonstration von IO-Converter
  3228.   E199506070000
  3229.   :Hallo Markus,
  3230.   :Diese Mail demonstriert, wie der MIME-Filter im allgemeinen so funktioniert.
  3231.   :Es ist sicher interessant, das einmal im Detail zu sehen.
  3232. te, R
  3233. be, R
  3234. llchen, 
  3235. pfel, 
  3236. bel, Na
  3237.   :Na wie war's?
  3238.   :Gru
  3239.   :     Markus.
  3240.  Sowohl die MIME-Zeilenumbr
  3241. che, als auch die Umlaute wurden wundersch
  3242. ckgewandelt. Damit ist die Mail wesentlich besser lesbar. U.U. w
  3243.  es sinnvoll, zum MIME-Filter zus
  3244. tzlich die Option "-Zeilenl
  3245. nge" zu
  3246.  verwenden, damit keine au
  3247. erodentlich langen Zeilen entstehen k
  3248. nnen.
  3249.  Ich hoffe, dieses Beispiel hat die F
  3250. higkeiten von IO-Converter
  3251.  zumindest ansatzweise demonstriert.
  3252. 1 Ausblick
  3253. ? Ausblick
  3254.  IO-Converter ist noch lange nicht fertig. Was Sie derzeit in H
  3255.  (bzw. auf der Platte/Diskette) haben, ist im Prinzip nicht mehr als eine
  3256.  - allerdings schon sehr brauchbare - Vorabversion. Viele weitere
  3257. glichkeiten sind geplant. Einige davon werden irgendwann umgesetzt
  3258.  werden, andere werden wieder in der Versenkung verschwinden. Anregungen
  3259.  sind jederzeit willkommen; was letztlich implementiert wird, h
  3260. ngt von
  3261.  der Resonanz und meiner Laune ab. Angedacht ist bisher:
  3262. #\begin{itemize}
  3263. #\item Unterst"utzung externer Filter (z.B. Daemons)
  3264. #\item Fehlerausgabe im Klartext statt mit Nummern
  3265. #\item Footertrennlinie optional automatisch zuf"ugen
  3266. #\item Option zur Behandlung von "`war:"' in Betreffs
  3267. #\item Priorit
  3268. tenoptionen f
  3269. r Bevorzugung von Eintr
  3270. gen im Infoblock
  3271. #      oder im Mailheader
  3272. #\item Mehrfachanwendung der Filter auf eine Mail
  3273. #\item Aktivierung von Filtern 
  3274. ber den Infoblock
  3275. #\item Deaktivierung von Filtern innerhalb von Filtern analog zur
  3276. #      Aktivierung
  3277. #\item Deaktivierung von Filtern 
  3278. ber den Infoblock
  3279. #\item Realisierung der Funktionalit
  3280. t von IFI
  3281. #\item \dots
  3282. #\end{itemize}
  3283.  - Unterst
  3284. tzung externer Filter (z.B. Daemons)
  3285.  - Fehlerausgabe im Klartext statt mit Nummern
  3286.  - Footertrennlinie optional automatisch zuf
  3287.  - Option zur Behandlung von "war:" in Betreffs
  3288.  - Priorit
  3289. tenoptionen f
  3290. r Bevorzugung von Eintr
  3291. gen im Infoblock
  3292.    oder im Mailheader
  3293.  - Mehrfachanwendung der Filter auf eine Mail
  3294.  - Aktivierung von Filtern 
  3295. ber den Infoblock
  3296.  - Deaktivierung von Filtern innerhalb von Filtern analog zur
  3297.    Aktivierung
  3298.  - Deaktivierung von Filtern 
  3299. ber den Infoblock
  3300.  - Realisierung der Funktionalit
  3301. t von IFI
  3302.  - ...
  3303.  Wenn ich sehe, was andere Filter, f
  3304. r die tats
  3305. chlich Geld verlangt
  3306.  wird, so bieten - oder auch nicht bieten -, f
  3307. llt mir bestimmt noch eine
  3308.  Menge ein. Auf der anderen Seite mu
  3309.  IO-Converter den Vergleich mit
  3310.  manchem Shareware-Filter sicher nicht f
  3311. rchten.
  3312.  Wer 
  3313. brigens eine Freeware-GEM-Shell f
  3314. r IO-Converter programmieren
  3315.  will, kann sich gerne bei mir melden.
  3316. 1 CAT-I/O-Filter
  3317. ? CAT-I/O-Filter
  3318.  Hier sind nur Filter aufgef
  3319. hrt, die frei (incl. Postcardware) und mir
  3320.  bekannt sind. Weitere freie Filter k
  3321. nnen jederzeit gerne aufgenommen
  3322.  werden.
  3323. ? CAT-Rondo
  3324. #\minisec{CAT-Rondo {\normalfont\sffamily von Matthias St
  3325. rmer @ KA2}}
  3326. @{B}CAT-Rondo@{b} von Matthias St
  3327. rmer @@ KA2
  3328.  Rundschreibengenerator f
  3329. r CAT. Erzeugt aus einer Message mit speziellem
  3330.  Adressaten und einer Adre
  3331. datei entsprechend viele Kopien der Message,
  3332.  wobei eingeschr
  3333. nkt Serienbrieffunktionen zur Verf
  3334. gung stehen.
  3335.  Geeignet f
  3336. r Messages.
  3337. ? FixIO
  3338. #\minisec{FixIO {\normalfont\sffamily von Markus Kohm @ KA2}}
  3339. @{B}FixIO@{b} von Markus Kohm @@ KA2
  3340.  Dieser Filter ersetzt einzelne Zeichen durch Zeichenketten, Tabulatoren
  3341.  durch die gew
  3342. nschte Anzahl an Leerzeichen (bzw. bis zur gew
  3343. nschten
  3344.  Position durch Leerzeichen) und umbricht den Text auf Wunsch. Dieser
  3345.  Filter ist bei Verwendung von `IO-Converter` nahezu 
  3346. berfl
  3347. ssig.
  3348.  Geeignet f
  3349. r In- und Outfile.
  3350. ? IFI
  3351. #\minisec{IFI \{\normalfont\sffamily von Markus Kohm @ KA2}}
  3352. @{B}IFI@{b} von Markus Kohm @@ KA2
  3353.  Urspr
  3354. nglich gedacht als universeller Infile-Filter. Kann aber
  3355.  theoretisch auch auf Outfiles angewandt werden. 
  3356. ber spezielle
  3357.  Aktivierungsbefehle im Mailtext k
  3358. nnen Mailtexte bzw. Teile daraus an
  3359.  andere Programme 
  3360. bergeben werden. Nach der Bearbeitung werden die Teile
  3361.  dann in der bearbeiteten Form wieder eingesetzt. Es ist so auch m
  3362. glich,
  3363.  Teile zu l
  3364. schen oder neu zuzuf
  3365.  Geeignet f
  3366. r In- und Outfile.
  3367. ? InterNet-to-Maus-Gate
  3368. ? I2M-Gate
  3369. #\minisec{InterNet-to-Maus-Gate {\normalfont\sffamily von Markus Kohm @ KA2}}
  3370. @{B}InterNet-to-Maus-Gate@{b} von Markus Kohm @@ KA2
  3371.  Erzeugt aus einer InterNet-mailbox-Datei ein Outfile oder f
  3372. gt die Mails
  3373.  entsprechend in ein existierendes Outfile ein, so da
  3374.  sie von CAT
  3375.  importiert werden k
  3376. nnen. Es wird 
  3377. ber eine spezielle Form des Absenders
  3378.  und eine "Reply to"-Angabe daf
  3379. r gesorgt, da
  3380.  die Mails auch innerhalb
  3381.  der normalen Database 
  3382. ber die Maus beantwortet werden k
  3383. nnen. 
  3384. berlange
  3385.  Mails werden automatisch aufgeteilt.
  3386.  Dieses Programm ist nicht 
  3387. ffentlich, sondern nur auf Nachfrage
  3388. ltlich.
  3389.  Geeignet f
  3390. r InterNet-mailbox-Datei (und Outfile).
  3391. ? INTool
  3392. #\minisec{INTool {\normalfont\sffamily von Ole Pahl @ IZ}}
  3393. @{B}INTool@{b} von Ole Pahl @@ IZ
  3394.  Infile-Utility, das 
  3395. ber bestimmte Strings in einer Mail Anreden setzen,
  3396.  Dateien einf
  3397. gen und zuf
  3398. llige Spr
  3399. che aus einer Datei ausw
  3400. hlen und
  3401.  einsetzen kann. Die Funktionalit
  3402. t wird - allerdings auf andere Art -
  3403.  auch von IO-Converter erbracht.
  3404.  Geeignet f
  3405. r Infile.
  3406. #\minisec{IO-Converter {\normalfont\sffamily von Markus Kohm @ KA2}}
  3407. @{B}IO-Converter@{b} von Markus Kohm @@ KA2
  3408.  Dieser Filter vereinigt diverse M
  3409. glichkeiten. Er kann selektiv Zeichen
  3410.  und Zeichenfolgen innerhalb von Mails ersetzen, verschiedene Formen von
  3411.  "RE" und "LALL" aus der Betreffzeile entfernen, Anreden, Gr
  3412. e und
  3413.  Footer ins Mails einbauen u.v.m.
  3414.  Geeignet f
  3415. r In- und Outfiles.
  3416. ? Jelly Cat
  3417. #\minisec{Jelly Cat {\normalfont\sffamily von Markus Kohm @ KA2}}
  3418. @{B}Jelly Cat@{b} von Markus Kohm @@ KA2
  3419.  Dieser Filter sorgt bei einger
  3420. ckten Textbl
  3421. cken in Messages automatisch
  3422. r, da
  3423.  diese gesch
  3424. tzt werden, also feste Zeilenenden bekommen und
  3425.  von der Maus nicht mehr auf eine gr
  3426. ere Breite umbrochen werden k
  3427. nnen.
  3428.  Sehr n
  3429. tzlich, um zerhackte Zeilen, wie sie z.B. in Atari.News 
  3430. fter zu
  3431.  sehen sind, zu vermeiden. Dar
  3432. ber hinaus kann Jelly Cat ab Version 1.1
  3433.  den Infoblock automatisch setzen!
  3434.  Geeignet f
  3435. r Messages.
  3436. ? Katzenklo
  3437. #\minisec{Katzenklo {\normalfont\sffamily von Thomas Neumann @ DU}}
  3438. @{B}Katzenklo@{b} von Thomas Neumann @@ DU
  3439.  Der Welt bester Laberfilter f
  3440. r CAT (Freeware bis Version 1.07).
  3441.  Geeignet f
  3442. r Outfile.
  3443. ? T2D2T
  3444. ? TOS2DOS2TOS
  3445. #\minisec{T2D2T {\normalfont\sffamily von Markus Kohm @ KA2}}
  3446. @{B}T2D2T@{b} von Markus Kohm @@ KA2
  3447.  Ersetzt das DOS-
  3448.  durch das TOS-
  3449.  und umgekehrt (je nach Wunsch). Dieser
  3450.  Filter ist z.B. n
  3451. tzlich, wenn eine Quark keine Umlautkonvertierung f
  3452.  Atari anbietet. Der Filter ist bei Verwendung von IO-Converter
  3453. berfl
  3454. ssig.
  3455.  Geeignet f
  3456. r In- und Outfile.
  3457. 1 CAT-Zusatzprogramme
  3458. ? CAT-Zusatzprogramme
  3459.  Hier sind nur Programme und Dateien aufgef
  3460. hrt, die frei (incl.
  3461.  Postcardware) und mir bekannt sind. Weitere freie Programme und Dateien
  3462. nnen jederzeit gerne aufgenommen werden.
  3463. ? Bingo
  3464. #\minisec{Bingo {\normalfont\sffamily von Ingo Pl
  3465. ckhahn @ DU}}
  3466. @{B}Bingo@{b} von Ingo Pl
  3467. ckhahn @@ DU
  3468.  `Cat-Stat` mit GEM-Shell.
  3469. ? CatMail
  3470. #\minisec{CatMail {\normalfont\sffamily von Wolfgang Wander @ H2}}
  3471. @{B}CatMail@{b} von Wolfgang Wander @@ H2
  3472. gt Texte zum Versand in die Messageverwaltung von CAT ein.
  3473. ? Cat-Stat
  3474. #\minisec{Cat-Stat {\normalfont\sffamily von Timm Ganske @ F}}
  3475. @{B}Cat-Stat@{b} von Timm Ganske @@ F
  3476.  Erzeugt Statistiken und Outfiles aus der CAT-Database.
  3477. ? CAT-Tausch
  3478. #\minisec{CAT-Tausch {\normalfont\sffamily von Markus Kohm @ KA2}}
  3479. @{B}CAT-Tausch@{b} von Markus Kohm @@ KA2
  3480.  Dieses Programm automatisiert den Aufruf von Mailer (z.B. CAT), Packer
  3481.  und Terminalprogramm auch f
  3482. r mehrere User (ein Tausch!), auf Wunsch
  3483.  zeitgesteuert. Das Programm erm
  3484. glicht u.a. den gepackten Tausch, auch
  3485.  wenn der Speicher nicht reicht, damit CAT den Wunschpacker aufrufen
  3486.  kann.
  3487. ? MSORT
  3488. #\minisec{MSORT {\normalfont\sffamily von Andreas Frank @ S}}
  3489. @{B}MSORT@{b} von Andreas Frank @@ S
  3490.  Sortiert die CAT-Adre
  3491. datei nach Vor- oder Nachnamen.
  3492. ? TAUDOKU
  3493. ? tau_doku.hyp
  3494. #\minisec{TAUDOKU {\normalfont\sffamily von Uwe Ohse @ DU}}
  3495. @{B}TAUDOKU@{b} von Uwe Ohse @@ DU3
  3496.  Dokumentation des MausTauschs. In verschiedenen Formaten verf
  3497. gbar.
  3498.